ホームページ > バックエンド開発 > PHPチュートリアル > DOM を使用して PHP5 で XML を制御する(1)

DOM を使用して PHP5 で XML を制御する(1)

黄舟
リリース: 2023-03-03 14:08:01
オリジナル
1185 人が閲覧しました

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) に注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート