PHP を使用したプログラミングのプロセスでは、XML ファイルがよく使用されますが、すべての開発者が XML ファイルの構文規則に精通しているわけではないため、処理のために XML ファイルを配列に変換する必要があります。ここでは、PHP を使用して XML ファイルを配列に変換する方法を説明します。
1. SimpleXML 拡張関数を使用する
SimpleXML 拡張関数は、PHP に付属する XML 解析拡張機能であり、XML ファイルをオブジェクトに解析し、そのオブジェクトを配列に変換できます。 。
SimpleXML 拡張関数を使用する手順は次のとおりです:
$xml = simplexml_load_file('example.xml');
$array = json_decode(json_encode($xml), TRUE);
このうち json_decode() 関数は、JSON 形式の文字列を配列に変換する関数です。 PHP 配列。 json_encode() 関数は、PHP 配列を JSON 形式の文字列にシリアル化します。ここでは、SimpleXML オブジェクトを JSON 形式の文字列にシリアル化し、それを PHP 配列に解析します。
2. DOMDocument クラスを使用する
DOMDocument は、PHP に付属する DOM 解析拡張機能であり、XML ファイルをツリー構造に解析し、必要なノードを見つけることができます。対処する。
DOMDocument クラスを使用する手順は次のとおりです:
$dom = new DOMDocument(); $dom->load('example.xml');
$root = $dom->documentElement;
サンプル コードは次のとおりです。
$array = array(); if ($root->hasChildNodes()) { $children = $root->childNodes; for ($i = 0; $i < $children->length; $i++) { $child = $children->item($i); $array[$child->nodeName] = $child->nodeValue; } }
上記のコードでは、最初に空の配列を作成し、次にルート ノードの下の各子ノードを走査します。子ノードが空でない場合は、その名前と値を配列に保存します。
3. XML パーサー クラスを使用する
XML パーサーは、PHP に付属する XML パーサーです。XML ファイルを解析してイベント ストリームに変換し、XML を解析できます。イベントの種類に応じてファイルをイベント ストリームに変換し、この XML ファイルを処理します。
XML パーサーを使用する手順は次のとおりです。
$xml_parser = xml_parser_create();
function startElement($parser, $element_name, $element_attrs) { //处理元素开始事件 } function endElement($parser, $element_name) { //处理元素结束事件 } function charData($parser, $data) { //处理文本内容事件 } xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "charData");
上記のコードでは、3 つの処理関数を定義します。 startElement() は要素の開始イベントを処理するために使用され、 endElement() は要素の開始イベントを処理するために使用されます。要素終了イベントの処理に使用されます。charData() テキスト コンテンツ イベントの処理に使用されます。次に、これら 3 つの処理関数を XML パーサーに登録します。
$fp = fopen('example.xml', 'r'); while ($data = fread($fp, 4096)) { xml_parse($xml_parser, $data, feof($fp)); }
上記のコードでは、まず XML ファイルをバイナリ モードでメモリに読み込み、次にXML パーサーによって解析されたデータ ブロックを段階的に転送します。
概要:
上記は XML ファイルを配列に変換する 3 つの方法であり、開発者は実際のニーズに応じて適切な方法を選択できます。 SimpleXML 拡張関数と DOMDocument クラスを使用するプロセスで、PHP は大量のメモリと CPU リソースを占有します。一方、XML Parser クラスを使用すると、メモリと CPU リソースを節約できますが、より多くの処理関数を記述する必要があります。
以上がPHPでXMLを配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。