PHP では、配列と XML データ間の変換が非常に一般的です。この記事では、PHP 配列を XML 形式に変換するいくつかの方法を紹介します。
まず、変換する XML を手動で構築します。具体的には、PHP の DOM 拡張機能を使用して、XML ドキュメントの構造に従って DOM オブジェクトを作成し、配列データを対応するノードに挿入します。簡単な例を次に示します。
<?php $my_array = array( 'person' => array( 'name' => 'Jack', 'age' => 30, 'email' => 'jack@example.com', ), ); $doc = new DOMDocument(); $root = $doc->createElement('root'); $doc->appendChild($root); function array_to_xml($data, &$xml) { foreach($data as $key => $value) { if(is_array($value)) { $subnode = $xml->createElement($key); $xml->appendChild($subnode); array_to_xml($value, $subnode); } else { $xml->appendChild($xml->createElement($key,$value)); } } } array_to_xml($my_array, $root); echo $doc->saveXML(); ?>
PHP では、SimpleXML 拡張機能を使用して連想配列を XML に直接変換する簡単な方法も提供します。サンプル コードは次のとおりです。
<?php $my_array = array( 'person' => array( 'name' => 'Jack', 'age' => 30, 'email' => 'jack@example.com', ), ); $xml = new SimpleXMLElement('<root/>'); function array_to_xml($data, &$xml) { foreach($data as $key => $value) { if(is_array($value)) { array_to_xml($value, $xml->addChild($key)); } else { $xml->addChild("$key",htmlspecialchars("$value")); } } } array_to_xml($my_array, $xml); echo $xml->asXML(); ?>
もう 1 つの方法は、XMLWriter 拡張機能を使用することです。 XMLWriter は、XML ファイルの作成プロセスをより細かく制御するのに役立ちます。サンプル コードは次のとおりです。
<?php $my_array = array( 'person' => array( 'name' => 'Jack', 'age' => 30, 'email' => 'jack@example.com', ), ); $xml = new XMLWriter(); $xml->openMemory(); $xml->startDocument('1.0','UTF-8'); $xml->startElement('root'); function array_to_xml($data, &$xml) { foreach($data as $key => $value) { if(is_array($value)) { $xml->startElement($key); array_to_xml($value, $xml); $xml->endElement(); } else { $xml->writeElement($key, $value); } } } array_to_xml($my_array, $xml); $xml->endElement(); echo $xml->outputMemory(TRUE); ?>
概要
上記は、PHP 配列を XML に変換する 3 つの方法です。 XML を手動で構築するのは最も面倒な方法ですが、最も柔軟性が高く、XML 作成プロセスをきめ細かく制御できます。 SimpleXML は、連想配列を XML 形式に直接変換する、より単純なオプションです。 XMLWriter は、XML ファイルの作成プロセスをより細かく制御するのに役立ちます。実際のニーズに応じて、これらの方法を 1 つ以上選択して、配列を XML 形式に変換できます。
以上がPHP配列をXML形式に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。