組み込みの DOM パーサーにより、PHP で 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 ドキュメントの断片を見てください:
<?xml version="1.0" encoding="ISO-8859-1"?> <from>Jani</from>
XML DOM 上記の XML をツリー構造として考えてみましょう:
レベル 1: XML ドキュメント
レベル 2: ルート要素: 66fd2ada9ebb04d4250c850dc1e3737e
レベル 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 をロードして出力する必要があります:
Example
<?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-Object が作成されます。そして、「note.xml」内のXMLをこのドキュメントオブジェクトに読み込みます。
saveXML() 関数は、内部 XML ドキュメントを string に入れて出力できるようにします。
XML をトラバースする
XML パーサーを初期化し、XML をロードし、<note> 要素のすべての要素を反復処理したいとします:
Instance
<?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忘れないで今週末!
#text =
上の例では、各要素のテキスト ノード間のスペース。
XML が生成されると、通常、ノード間に空白が含まれます。 XML DOM パーサーはこれらを通常の要素として扱うため、注意を払わないと問題が発生する可能性があります。
この記事では、DOM パーサー PHP での XML ドキュメントの処理について詳しく説明します。その他の学習教材については、PHP 中国語 Web サイトを参照してください。
関連する推奨事項:
以上がPHP XML DOM に関する関連知識ポイントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。