XML DOM

XML 解析

XML ドキュメントの読み取りと更新、作成、処理を行うには、XML パーサーが必要です。

XML パーサーには 2 つの基本的なタイプがあります:

· ツリーベースのパーサー: このパーサーは XML ドキュメントをツリー構造に変換します。ドキュメント全体を分析し、ドキュメント オブジェクト モデル (DOM) などのツリー内の要素へのアクセスを提供します。

· 時間ベースのパーサー: XML ドキュメントを一連のイベントとして処理します。特定のイベントが発生すると、パーサーはそれを処理する関数を呼び出します。

DOM パーサーはツリーベースのパーサーです。

次の XML ドキュメントの断片を参照してください:

<?xml version="1.0"coding="ISO-8859-1"?>
<from>Jani</from>

XML DOM 上記を入力しますXML はツリー構造として扱われます:

· レベル 1: XML ドキュメント

· レベル 2: ルート要素: <from>

· レベル 3: テキスト要素: "Jani"


インストール

DOM XML パーサー関数は、PHP コアの不可欠な部分です。これらの機能を使用するためにインストールは必要ありません。


XML ファイル

この例では次の XML ファイルが使用されます:

<?xml version="1.0" encoding="ISO-8859-1"?>
 <note>
 <to>Tove</to>
 <from>Jani</from>
 <heading>Reminder</heading>
 <body>Don't forget me this weekend!</body>
 </note>


XML のロードと出力

XML パーサーを初期化し、XML をロードして出力する必要があります。

<?php
 $xmlDoc = new DOMDocument();
 $xmlDoc->load("note.xml");
 
 print $xmlDoc->saveXML();
 ?>

上記のコードは出力します:

ToveJaniReminder今週末は私を忘れないでください!

ブラウザウィンドウでソースコードを表示すると、次のHTMLが表示されます:

<?xml version="1.0" encoding="ISO-8859-1"?>
 <note>
 <to>Tove</to>
 <from>Jani</from>
 <heading>Reminder</heading>
 <body>Don't forget me this weekend!</body>
 </note>

上記の例では、 DOMDocument オブジェクト。「note.xml」内の XML をこのドキュメント オブジェクトにロードします。

saveXML() 関数は、内部 XML ドキュメントを文字列に入れて出力できるようにします。


XML のトラバース

XML パーサーを初期化し、XML をロードし、<note> 要素のすべての要素を反復処理したいとします。

<?php
 $xmlDoc = new DOMDocument();
 $xmlDoc->load("note.xml");
 
 $x = $xmlDoc->documentElement;
 foreach ($x->childNodes AS $item)
 {
 print $item->nodeName . " = " . $item->nodeValue . "<br>";
 }
 ?>

出力:

# text =

to = Tove
#text =
from = Jani
#text =
Heading = Reminder
#text =
body = 今週末は私を忘れないでください!
#text =

In上の例では、各要素の間に空のテキスト ノードが表示されます。

XML が生成されると、通常、ノード間に空白が含まれます。 XML DOM パーサーはこれらを通常の要素として扱うため、注意を払わないと問題が発生する可能性があります。


学び続ける
||
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); $x = $xmlDoc->documentElement; foreach ($x->childNodes AS $item) { print $item->nodeName . " = " . $item->nodeValue . "<br>"; } ?>
  • おすすめコース
  • コースウェアのダウンロード
現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜