PHP 開発の基本チュートリアル PHP XML DOM

1. DOMとは何ですか?

W3C DOM は、HTML および XML ドキュメントの標準オブジェクト セットと、これらのドキュメントにアクセスして操作するための標準インターフェイスを提供します。
W3C DOM は、さまざまな部分 (コア、XML、HTML) とさまざまなレベル (DOM レベル 1/2/3) に分かれています:

  • Core DOM - あらゆる構造化ドキュメントの標準を定義するオブジェクトの標準セット

  • XML DOM - XML ドキュメントの標準オブジェクト セットを定義します

  • HTML DOM - HTML ドキュメントの標準オブジェクト セットを定義します
    XML DOM の詳細については、XML DOM チュートリアルを参照してください。

2. 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: ルート要素: <from>

  • レベル 3: テキスト要素: "Jani"

3. インストール

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

4. 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>

5. 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 オブジェクトを作成し、「note.xml」内の XML をこのドキュメント オブジェクトにロードします。

saveXML() 関数は、内部 XML ドキュメントを文字列に入れて出力できるようにします。

6. 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 = 今週末は私を忘れないでください!
#text =

上の例では、各要素の間に空のテキスト ノードが表示されます。

XML が生成されると、通常、ノード間に空白が含まれます。 XML DOM パーサーはこれらを通常の要素として扱うため、注意を払わないと問題が発生する可能性があります。


学び続ける
||
<?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>
  • おすすめコース
  • コースウェアのダウンロード
現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜