PHP XML DOM
組み込みPHP DOMパーサXML文書を処理することができます。
DOMとは何ですか?
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パーサーが必要です。
XMLパーサーの2つの基本タイプがあります。
- ツリーベースのパーサー:このパーサはツリー構造にXML文書を変換します。 これは、文書全体を解析し、そのようなドキュメントオブジェクトモデル(DOM)のように、ツリー内の要素へのアクセスを提供します。
- 時間ベースのパーサー:一連のイベントとしてXML文書。 特定のイベントが発生すると、パーサは処理する関数を呼び出します。
DOMパーサは、ツリーベースのパーサーです。
次のXML文書フラグメントを見てください:
<from>Jani</from>
XML DOM上記のXMLツリー構造のように:
- レベル1:XML文書
- レベル2:ルート要素:<から>
- レベル3:テキスト要素: "ヤニ"
インストール
DOM XMLパーサ関数はPHPのコアの一部です。 いいえ、インストールは、これらの関数を使用する必要はありません。
XMLファイル
以下のXMLファイルには、私たちの例で使用されます。
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
読み込みと出力XML
私たちは、XMLをロードするためにXMLパーサを初期化する必要があり、それを出力します。
例
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>
意志出力上のコード:
あなたがブラウザウィンドウでソースコードを表示する場合は、次のHTMLが表示されます。
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
上記の例は、のDOMDocument、オブジェクト、およびXMLオブジェクト内の文書のロード」note.xml」を作成します。
文字列に内部XML文書のsaveXML()関数なので、我々はそれをエクスポートすることができます。
トラバースXML
私たちは、XMLをロードし、すべての要素<メモ>要素を横断するようにXMLパーサーを初期化したいです:
例
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item)
{
print $item->nodeName . " = " . $item->nodeValue . "<br>";
}
?>
意志出力上のコード:
to = Tove
#text =
from = Jani
#text =
heading = Reminder
#text =
body = Don't forget me this weekend!
#text =
上記の例では、テキストノードの各要素間の空気の存在を参照してください。
XMLが生成されると、それは通常、ノード間の空白が含まれています。 あなたがそれらに注意を払う場合、XML DOMパーサそれらをなどの共通要素は、時々問題を引き起こします。
XML DOMの知識の詳細については、私たちの訪問のXML DOMチュートリアルを 。