内蔵のDOMパーサはPHPでXML文書を処理することが可能になります。
XML DOMパーサ
DOMパーサは、ツリーベースのパーサーです。
次のXML文書の一部を見てください:
<?xml version="1.0" encoding="UTF-8"?>
<from>Jani</from>
DOMは、ツリー構造として上記のXMLを見ています:
- レベル1:XMLドキュメント
- レベル2:ルート要素: <from>
- レベル3:テキスト要素: "Jani"
インスト
DOMパーサ関数は、PHPのコアの一部です。 これらの機能を使用するために必要な一切のインストールはありません。
XMLファイル
以下のXMLファイルには、私たちの例で使用されます。
<?xml version="1.0" encoding="UTF-8"?>
<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();
?>
上記のコードの出力は次のようになります。
Tove Jani Reminder Don't forget me this weekend!
あなたが選択した場合は"View source"ブラウザウィンドウで、次のようなHTMLが表示されます。
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
例は上記のDOMDocument・オブジェクトを作成し、XMLからロード"note.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 = Don't forget me this weekend!
#text =
もし上記の例では、各要素間の空のテキストノードが存在することがわかります。
XMLを生成するとき、それは多くの場合、ノード間のホワイトスペースが含まれています。 XML DOMパーサーは、これらのような通常の要素を扱い、あなたがそれらを認識していない場合、彼らは時々問題を引き起こします。
あなたがXML DOMについての詳細を知りたい場合は、当社をご覧くださいXMLのチュートリアルを 。