ホームページ > バックエンド開発 > PHPチュートリアル > PHP 配列を SimpleXML オブジェクトに変換するには?

PHP 配列を SimpleXML オブジェクトに変換するには?

Patricia Arquette
リリース: 2024-12-21 02:52:08
オリジナル
812 人が閲覧しました

How to Convert PHP Arrays to SimpleXML Objects?

PHP での配列の SimpleXML オブジェクトへの変換

PHP では、配列を SimpleXML オブジェクトに変換すると、XML データを操作する便利な方法となります。

解決策

次のコード スニペットは、配列を次のように変換する問題の解決策を提供します。 SimpleXML オブジェクト:

// Array to be converted
$data = array(
    'total_stud' => 500,
    0 => array(
        'student' => array(
            'id' => 1,
            'name' => 'abc',
            'address' => array(
                'city' => 'Pune',
                'zip' => 411006
            )
        )
    ),
    1 => array(
        'student' => array(
            'id' => 2,
            'name' => 'xyz',
            'address' => array(
                'city' => 'Mumbai',
                'zip' => 400906
            )
        )
    )
);

// Create a SimpleXMLElement object
$xml_data = new SimpleXMLElement('<?xml version="1.0"?><student_info></student_info>');

// Function to convert array to XML
function array_to_xml($data, &$xml_data) {
    foreach ($data as $key => $value) {
        if (is_array($value)) {
            if (is_numeric($key)) {
                $key = 'item' . $key; // Handle numeric keys
            }
            $subnode = $xml_data->addChild($key);
            array_to_xml($value, $subnode);
        } else {
            $xml_data->addChild("$key", htmlspecialchars("$value"));
        }
    }
}

// Convert array to XML
array_to_xml($data, $xml_data);

// Save the generated XML file
$result = $xml_data->asXML('/file/path/name.xml');
ログイン後にコピー

このコードは、配列を再帰的に反復し、指定された $xml_data オブジェクトに SimpleXMLElement ノードを追加する array_to_xml という関数を定義します。 item のプレフィックスを追加することで数値配列キーを処理します。 htmlspecialchars 関数は、配列値内の特殊文字をエスケープして、適切な XML 形式を保証するために使用されます。最後に、生成された XML は asXML を使用してファイルに保存されます。

以上がPHP 配列を SimpleXML オブジェクトに変換するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート