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

DOM を使用して XML_PHP を制御する PHP5 のチュートリアル

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-07-13 17:32:041160ブラウズ

php(現在の主流の開発言語として)5は、xml(標準化が近づいています)のサポートが強化されており、DOMを使用してxml(標準化が近づいています)の操作機能を拡張しています。これらの関数は php(現在主流の開発言語)5 のコアの一部であり、インストールせずに使用できます。

次の例は、xml 上の DOM の操作を簡単に示しています (標準化が近づいています) 詳細な説明については、コード内のコメントを参照してください

/**************************************************
* * php(現在の主流の開発言語として)でxml(標準化が近づいています)を使用5
** 参考サイト:
** http://cn.php(現在の主流の開発言語として) .net/manual/zh/ref.dom.php(現在の主流の開発言語として)
** 以下のコードにはphp(現在の主流の開発言語として)が必要です5のサポート
*** *** ******************************************/


。 //まず DOMDocument オブジェクトを作成します
$dom = new DomDocument();
//次に、xmlをロードします(標準化が近づいています)file
$dom ->load("test.xml(標準化が近づいています) close)");

//出力xml(標準化が近づいています)File
//header("Content-type: text/xml(標準化が近づいています); charset=gb2312");
//echo $dom -> savexml(標準化が近づいています)();

//xml(標準化が近づいています)ファイルを保存、戻り値はint(バイト単位のファイルサイズ)です
//$ dom -> save("newfile.xml(標準化は近づいています)");

echo "


すべてのタイトル要素を取得します:
";
$titles = $dom -> getElementsByTagName ("title");
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 == "タイトル") {
print $titles->textContent . ";

($ dom);
$ titles = $ xpath-> query("/rss/channel/item/title "); "
";
}
/*

これは getElementsByTagName() メソッドの使用に似ていますが、Xpath の方がはるかに強力です

さらに詳しく見ると次のようになります:
/rss/channel/item[position( ) = 1]/title 最初に戻る item 要素のすべての
/rss/channel/item/title[@id = 23] は、id 属性を含むすべてのタイトルを返し、値は 23 です
/rss/channel/&folder&/ title すべての記事要素の下のタイトルを返します (翻訳注: &folder& はディレクトリの深さを表します)
*/


//新しいデータを DOM に書き込みます
$item = $dom->createElement("item");
$title = $ dom->createElement("title ");
$titleText = $dom->createTextNode("タイトルテキスト");
$title->appendChild($titleText);
$item->appendChild($title);
$ dom->documentElement->getElementsByTagName (channel)->item(0)->appendChild($item);

//DOM からノードを削除します

//$dom->documentElement->RemoveChild($dom->documentElement- >getElementsByTagName("channel" )->item(0));
//または、xpath を使用してノードをクエリし、ノードを削除します
//$dom->documentElement->RemoveChild($xpath->query("/rss/ channel")->item(0 ));
//$dom->save("newfile.xml
(標準化が近づいています)
");

//DOM からノード データを変更します

//最初のデータを変更しますtitle file

//ここは愚かなので、新しいノードを作成して、古いノードを置き換えます。他に良い方法があれば教えてください

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/508732.html技術記事 PHP (現在の主流の開発言語として) は、PHP 5 で XML (標準化が近づいています) のサポートを強化し、DOM を使用して XML (標準化が近づいています) の操作機能を拡張しています。これらの関数は...
として機能します
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。