組み込みの DOM パーサーを使用すると、PHP で XML ドキュメントを処理できます。
W3C DOM は、HTML および XML ドキュメントの標準オブジェクト セットと、これらのドキュメントにアクセスして操作するための標準インターフェイスを提供します。 W3C DOM は、さまざまな部分 (コア、XML、HTML) とさまざまなレベル (DOM レベル 1/2/3) に分かれています。 * コア DOM - あらゆる構造化ドキュメントのオブジェクトの標準セットを定義します。 * XML DOM - XML ドキュメント用です。標準オブジェクト セット* HTML DOM - HTML ドキュメントの標準オブジェクト セットの定義 XML DOM の詳細については、XML DOM チュートリアルを参照してください。
XML ドキュメントの読み取りと更新、作成、処理を行うには、XML パーサーが必要です。
XML パーサーには 2 つの基本的なタイプがあります。
ツリーベースのパーサー: このパーサーは、XML ドキュメントをツリー構造に変換します。ドキュメント全体を分析し、ドキュメント オブジェクト モデル (DOM) などのツリー内の要素へのアクセスを提供します。
イベントベースのパーサー: XML ドキュメントを一連のイベントとして処理します。特定のイベントが発生すると、パーサーはそれを処理する関数を呼び出します。
DOM パーサーはツリーベースのパーサーです。
次の XML ドキュメントの断片を見てください。
<?xml version="1.0"coding="ISO-8859-1"?><from>ジャニ</from>
XML DOM は、上記の XML をツリー構造として扱います。
レベル 1: XML ドキュメント
レベル 2: ルート要素: <from>
レベル 3: テキスト要素: 「ジャニ」
DOM XML パーサー関数は、PHP コアの不可欠な部分です。これらの機能を使用するためにインストールは必要ありません。
この例では、次の XML ファイルが使用されます。
<?xml version="1.0"coding="ISO-8859-1"?><note><to>トーベ</to><from>ジャニ</from><見出し>リマインダー</見出し><本文>ドン今週末は私を忘れないでください!</body></note>
XML パーサーを初期化し、XML をロードして出力する必要があります。
<?php$xmlDoc = new DOMDocument();$xmlDoc->load("note.xml");print $xmlDoc->saveXML();?>
上記のコードは次のように出力します。
ToveJaniReminder 今週末は私を忘れないでください!
ブラウザ ウィンドウでソース コードを表示すると、次の HTML が表示されます。
<?xml version="1.0"coding="ISO-8859-1"?><note><to>トーベ</to><from>ジャニ</from><見出し>リマインダー</見出し><本文>ドン今週末は私を忘れないでください!</body></note>
上記の例では、DOMDocument オブジェクトを作成し、「note.xml」内の XML をこのドキュメント オブジェクトにロードします。
saveXML() 関数は、内部 XML ドキュメントを文字列に入れて出力できるようにします。
XML パーサーを初期化し、XML をロードし、<note> 要素のすべての要素を反復処理します。
<?php$xmlDoc = new DOMDocument();$xmlDoc->load("note.xml");$x = $xmlDoc->documentElement;foreach ($x->childNodes AS $item) { print $item->ノード名 . " = " . $item->" }?>
上記のコードは次のように出力します。
#text = to = Tove#text = from = Jani#text =Heading = Reminder#text = body = 今週末は私を忘れないでください!#text =
上の例では、各要素の間に空のテキスト ノードがあることがわかります。
XML が生成されると、通常、ノード間に空白が含まれます。 XML DOM パーサーはこれらを通常の要素として扱うため、注意を払わないと問題が発生する可能性があります。
XML DOM の詳細については、XML DOM チュートリアルをご覧ください。