PHP5 は XML サポートを強化し、DOM を使用して XML 操作機能を拡張します。これらの関数は PHP5 コアの一部であり、使用するためにインストールする必要はありません。
次の例は、XML での DOM の操作を簡単に示しています。詳細な説明については、コード内のコメントを参照してください。
/************************************************
** 使用PHP5 の XML
** 参考サイト:
** http://cn.php.net/manual/zh/ref.dom.php
** 以下のコードは PHP5 のサポートが必要です
** www.knowsky.com
* ***********************************************/
//まず、DOMDocument オブジェクトを作成します。
$ dom = new DomDocument();
//XML ファイルをロードします
$dom ->load("test.xml"); //XML ファイルを出力します
//header("Content-type: text/xml ;charset=gb2312");
//echo $dom ->saveXML();
//XML ファイルを保存、戻り値は int (バイト単位のファイル サイズ)
//$dom -> ; save("newfile.xml");
echo "
すべてのタイトル要素を取得:
"; foreach ($titles as $node)
{
echo $node -> textContent . "
";
//これも機能します
//echo $node->firstChild->data .
";
}
/*
echo "
ルートノードからすべてのノードを走査します:
";
foreach ($dom->documentElement- > ;childNodes as $items) {
//ノードが要素 (nodeType == 1) で名前が item の場合、ループを継続します
if ($items->nodeType == 1 && $items->nodeName = = "item") {
foreach ($items->childNodes as $titles) {
//ノードが要素で名前が title の場合、それを出力します
if ($titles->nodeType == 1) && $titles->nodeName == "title") {
Print $titles->textContent . "n"; }
}
}
}
*/
// XPath を使用してデータをクエリする
echo "
XPath クエリを使用したタイトル ノードの結果:
";
$xpath = new domxpath($dom);
$titles = $xpath->query("/rss/channel /item/title ");
foreach ($titles as $node)
{
echo $node->textContent."
";
}
/*
これは getElementsByTagName( ) メソッドですが、Xpath が必要です これははるかに強力です
もう少し深くすると、次のようになります:
/rss/channel/item[position() = 1]/title すべてを返します
/rss/channel/item/title[@ id = 最初の item 要素の '23' ] id 属性を含み、値が 23 であるすべてのタイトルを返します
/rss/channel/&folder&/titlearticles 要素の下にあるすべてのタイトルを返します (翻訳者注: &folder& はディレクトリの深さを表します)
*/
上記は PHP5 で DOM を使用して XML の内容を制御する(1)、
その他の関連記事については、PHP 中国語 Web サイト (m.sbmmt.com) に注目してください。