PHP で XMLReader を効果的に利用する方法
PHP では、SimpleXML を使用して大きな XML ドキュメントを解析しようとすると、問題が発生する場合があります。これに対処するには、XMLReader が代替手段として機能します。ただし、その使用法に関する包括的なチュートリアルを見つけるのは難しい場合があります。
XMLReader を利用して個々の要素のコンテンツを効率的に取得し、データベースに保存する方法を見てみましょう。
XML の例構造
<products> <last_updated>2009-11-30 13:52:40</last_updated> <product> <element_1>foo</element_1> <element_2>foo</element_2> <element_3>foo</element_3> <element_4>foo</element_4> </product> <product> <element_1>bar</element_1> <element_2>bar</element_2> <element_3>bar</element_3> <element_4>bar</element_4> </product> </products>
XMLReader とSimpleXML
目標は、各
PHP での実装
$z = new XMLReader; $z->open('data.xml'); $doc = new DOMDocument; // Move to the first <product> node while ($z->read() && $z->name !== 'product'); // Loop through <product> nodes while ($z->name === 'product') { // Import XML string into SimpleXMLElement object $node = new SimpleXMLElement($z->readOuterXML()); // Get values of element nodes var_dump($node->element_1); // Move to next <product> node $z->next('product'); }
さまざまなノードのメリットとデメリットアプローチ
XMLReader のみ:
XMLReader SimpleXML:
XMLReader DOM:
推奨事項
ほとんどの状況では、XMLReader と SimpleXML を使用することが理想的な選択です。パフォーマンスと使いやすさのバランスが取れています。どうしても必要な場合を除き、XMLReader を直接使用しないでください。
以上がXMLReader と SimpleXML を使用して PHP で大きな XML ファイルを効率的に解析する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。