TECH I.S.

PHP XML DOMパーサー


組み込みのDOMパーサーにより、PHPでXMLドキュメントを処理できます。


XML DOMパーサー

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

次のXMLドキュメント部分を見てください。

<div><?xml version="1.0" encoding="UTF-8"?> <from>Jani</from></div>

DOMは、上記のXMLをツリー構造として認識します。

  • レベル 1: XMLドキュメント
  • レベル 2: ルート要素: <from>
  • レベル 3: テキスト要素: "Jani"

インストール

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


XMLファイル

以下のXMLファイル(「note.xml」)は、この例で使用されます。

<div><?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></div>

XMLの読み込みと出力

XMLパーサーを初期化し、xmlをロードして出力します。

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

上記のコードの出力は次のようになります。

<div>Tove Jani Reminder Don't forget me this weekend!</div>

ブラウザ ウィンドウで[ソースを表示]を選択すると、次のHTMLが表示されます。

<div><?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></div>

上記の例では、DOMDocument-Objectを作成し、「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>"; } ?>

上記のコードの出力は次のようになります。

<div>#text = to = Tove #text = from = Jani #text = heading = Reminder #text = body = Don't forget me this weekend! #text = </div>

上記の例では、各要素の間に空のテキストノードがあることがわかります。

XMLが生成されると、多くの場合、ノード間に空白が含まれます。 XML DOMパーサーはこれらを通常の要素として扱います。これらを認識していないと、問題が発生することがあります。


XML DOMについて詳しく知りたい場合は、こちらのXML チュートリアルをご覧ください。



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細