PHP は、Web アプリケーションの開発によく使用される、一般的に使用されるプログラミング言語です。 XML は、Web アプリケーションでも頻繁に使用される形式です。 PHP 配列を XML 形式に変換すると、異なるソフトウェア間でデータを交換および共有できるようになります。
この記事では、PHP を使用して比較的単純な配列を XML 形式に変換する方法を説明します。
中心となるアイデアは、各配列要素を XML 要素に変換し、要素内の属性と値を XML 属性と値に変換することです。再帰的アプローチを使用して、入れ子になった配列を処理できます。
まず、変換する配列を定義します:
$data = array( "book" => array( "title" => "Learning PHP", "author" => "David Sklar", "publisher" => "O'Reilly Media", "edition" => "4th", "year" => 2014 ) );
次に、この配列を XML に変換する関数を作成する必要があります。関数のコードは次のとおりです。
function array_to_xml($array, &$xml) { foreach ($array as $key => $value) { if (is_array($value)) { if (is_numeric($key)) { $key = 'item' . $key; } $subnode = $xml->addChild($key); array_to_xml($value, $subnode); } else { $xml->addChild($key, htmlspecialchars($value)); } } }
この関数は array_to_xml と呼ばれ、変換される配列と XML を格納するために使用される XML ドキュメント オブジェクトへの参照を渡します。
関数は、配列の各要素をループし、要素の型 (配列または文字列/数値型) をチェックすることにより、必要に応じて XML ノードを作成します。
要素が配列型の場合、この関数は再帰的に呼び出され、子ノードが現在のノードに追加されます。
文字列/数値型要素の場合は、現在のノードに直接追加されます。
この例では、第 1 レベルのノードの名前は「book」なので、XML ドキュメント オブジェクトを使用して「book」という名前のルート ノードを作成します。
$xml = new SimpleXMLElement('<book/>');
Next , array_to_xml 関数を呼び出して配列を XML に変換し、XML ドキュメントに追加します。
array_to_xml($data, $xml);
最後に、XML ドキュメントを出力します。
echo $xml->asXML();
完全なコードは次のとおりです。 ##
$data = array( "book" => array( "title" => "Learning PHP", "author" => "David Sklar", "publisher" => "O'Reilly Media", "edition" => "4th", "year" => 2014 ) ); $xml = new SimpleXMLElement('<book/>'); function array_to_xml($array, &$xml) { foreach ($array as $key => $value) { if (is_array($value)) { if (is_numeric($key)) { $key = 'item' . $key; } $subnode = $xml->addChild($key); array_to_xml($value, $subnode); } else { $xml->addChild($key, htmlspecialchars($value)); } } } array_to_xml($data, $xml); echo $xml->asXML();
<book> <title>Learning PHP</title> <author>David Sklar</author> <publisher>O'Reilly Media</publisher> <edition>4th</edition> <year>2014</year> </book>
以上がPHPで配列をXML形式に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。