「
Pear-XMLTreeを使う」で紹介した、
PEARのXML_Treeによってツリー構造を実現してもよいのですが、domxmlエクステンションが利用できるサーバで使える場合はこちらで使った方がパフォーマンスは向上するでしょう。
以下に使い方をまとめます。
まず、最初に、
$dom = @domxml_open_file($senduri);
または、
$dom = @domxml_open_mem($xmlstr);
によって $dom オブジェクトを作成します。
domxml_open_file は既存ファイルや、外部URLがファイルとして開ける場合はURLとして渡します。
例)
domxml_open_file("a.xml");
domxml_open_file("http://foo/a.xml"); // php.ini でURL読み出し禁止の場合は使えない。
domxml_open_fileに成功したら、dom オブジェクトのメソッド document_element によって XMLのrootの要素を取得する。
$root = $dom->document_element();
$rootにはXML構造のルート要素が入ります。
次に、child_nodes メソッドによって root 要素の子を取得します。子は複数ある場合もあるのでforeachでループさせます。
<?php
$childs = $root->child_nodes();
foreach ($childs as $child) {
echo $child->tagname."\n"; // タグ名
echo "---".$child->get_content()."\n"; // コンテンツ
}
?>
例えば、
<root>
<hoge>コンテンツ</hoge>
</root>
のような xml の場合、
hoge
---コンテンツ
のように表示させることができる。
dom の簡単なサンプル
<?php
$path = "〜"; // XMLパス(ファイル or URL)
$dom = @domxml_open_file($path);
$root = $dom->document_element();
$childs = $root->child_nodes();
foreach ($childs as $child) {
echo $child->tagname."\n"; // タグ名
echo "---".$child->get_attribute("属性名")."\n"; // 属性
echo "---".$child->get_content()."\n"; // コンテンツ
}
?>
スポンサードリンク