PHP XML DOM
- 前のページ XML Expat パーサー
- 次のページ XML SimpleXML
内蔵の DOM 解析器により、PHP で XML 文書を処理することが可能になります。
DOM とは何ですか?
W3C DOM は HTML と XML 文書のための標準のオブジェクトセットを提供し、これらの文書にアクセスおよび操作するための標準インターフェースを提供します。
W3C DOM は異なる部分 (Core, XML, HTML) と異なるレベル (DOM Level 1/2/3) に分類されます:
- Core DOM - あらゆる構造化文書のための標準のオブジェクトセット
- XML DOM - XML 文書のための標準のオブジェクトセット
- HTML DOM - HTML 文書のための標準のオブジェクトセット
XML DOM に関するより多くの知識を学びたい場合は、以下の XML DOM チュートリアル。
XML 解析
XML 文書を読み取り、更新するために - 文書を作成し、処理するために、XML 解析器が必要です。
基本的な XML 解析器のタイプは二種類あります:
- 木構造ベースの解析器:この解析器は XML 文書を木構造に変換します。全体の文書を分析し、ドキュメントオブジェクトモデル (DOM) などの要素にアクセスするための API を提供します。
- イベントベースの解析器:XML 文書を一連のイベントとして視覚化します。特定のイベントが発生すると、解析器は関数を呼び出して処理します。
DOM 解析器は木構造に基づく解析器です。
以下の XML 文書の一部を見てください:
<?xml version="1.0" encoding="ISO-8859-1"?> <from>ジョン</from>
XML DOM は XML を木構造として視覚化します:
- レベル 1: XML 文書
- レベル 2: タグの根: <from>
- レベル 3: テキスト要素: "ジョン"
インストール
DOM XML 解析器関数は PHP のコアの一部です。インストールせずに使用できます。
XML ファイル
以下の XML ファイルを使用して例を示します:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>ジョージ</to> <from>ジョン</from> <heading>リマインダー</heading> <body>会議を忘れないでください!</body> </note>
XMLの読み込みと表示
XML 解析器を初期化し、XMLを読み込み、それを表示する必要があります:
例
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); print $xmlDoc->saveXML(); ?>
上記のコードの出力:
ジョージ ジョン リマインダー 会議を忘れないでください!
ブラウザのウィンドウでソースコードを確認すると、以下のような HTML を見つけることができます:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>ジョージ</to> <from>ジョン</from> <heading>リマインダー</heading> <body>会議を忘れないでください!</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 = George #text = from = John #text = heading = リマインダー #text = body = 会議を忘れないで! #text =
上記の例では、各要素間に空のテキストノードがあることが見られます。
XMLが生成される際には、通常、節間にスペースが含まれています。XML DOM パーサーはそれらを通常の要素として処理し、注意を払わない場合、問題が発生することがあります。
XML DOM に関するより多くの知識を学びたい場合は、以下の XML DOM チュートリアル。
- 前のページ XML Expat パーサー
- 次のページ XML SimpleXML