ホームページ  >  記事  >  php教程  >  DOM を使用して PHP5 の XML 実装コードを制御する

DOM を使用して PHP5 の XML 実装コードを制御する

WBOY
WBOYオリジナル
2016-06-13 12:16:18782ブラウズ

次の例は、XML での DOM の操作を簡単に示しています。詳細な説明については、コード

のコメントを参照してください。 コードをコピーします。 コードは次のとおりです。


/************************************************
* * PHP5 で XML を使用する
** 参考サイト:
** http://cn.php.net/manual/zh/ref.dom.php
** 以下のコードは PHP5 のサポートが必要です
************************************************/

// まず DOMDocument オブジェクトを作成します
$dom = new DomDocument(); //次に XML ファイルをロードします
$dom ->

//出力 XML ファイル
//header("Content-type: text/xml") ;charset=gb2312" );
//echo $dom ->saveXML();

//XML ファイルを保存、戻り値は int (バイト単位のファイル サイズ)
/ /$dom -> save("newfile.xml");

echo "


すべてのタイトル要素を取得:
"; -> ; getElementsByTagName("title");
foreach ($titles as $node){
echo $node -> "
";
//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 最初に戻る すべての item 要素
/rss/channel/item/title[@id = '23'] id 属性を含み、値が 23 であるすべてのタイトルを返します
/ rss/channel/&folder&/title すべての記事要素を返します。 次のタイトル (翻訳者注: &folder& はディレクトリの深さを表します)
*/


// 新しいデータを DOM に書き込みます
$item = $dom->createElement("アイテム");
$title = $dom->createElement("タイトル");
$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 からのノード データを変更します🎜>//最初のタイトル ファイルを変更します。
//この場所は、新しいノードを作成してから古いノードを置き換えます。他に良い方法を持っている人がいたら教えてください
$firstTitle = $xpath->query("/rss/channel/item/title")->item(0); ->createElement("タイトル");
$newTitle->appendChild(new DOMText("これが新しいタイトル テキストです!!!"));
$firstTitle->parentNode- >replaceChild( $newTitle, $firstTitle);
//属性を変更
//$firstTitle = $xpath->query("/rss/channel/item/title")->item(0 ); >//$firstTitle->setAttribute("orderby", "4");
$dom->save("newfile.xml");

echo "< hr/> View newfile.xml";

//次のコードは、php.net のホームページを取得して解析し、最初のコンテンツを返します。タイトル要素。
/*
$dom->loadHTMLFile("http://www.php.net/");
$title = $dom->getElementsByTagName("title"); print $title->item(0)->textContent;
*/
?>


以下は test.xml ファイルのコードです:



コードをコピー

コードは次のとおりです:





javascript
http://blog.csdn.net/zhongmao/category/29515.aspx
javascript
<言語>zh-chs
.テキスト バージョン 0.958.2004.2001

zhongmaoクリエイター>
javascript を使用した Excel の出力
http://blog.csdn.net/zhongmao/archive/2004/09/15/105385.aspx
水、2004 年 9 月 15 日 13:32:00 gmt
http://blog.csdn.net/zhongmao/archive/2004/09/15/105385.aspx
http://blog.csdn.net/zhongmao/comments/105385.aspx
http://blog.csdn.net/zhongmao/archive/2004/09/15/105385.aspx#フィードバック
2
http://blog.csdn.net/zhongmao/comments/commentrss/105385.aspx
http://blog.csdn.net/zhongmao/services/trackbacks/105385.aspx
テストの説明


zhongmaoクリエイター>
javascript を使用した単語を出力
http://blog.csdn.net/zhongmao/archive/2004/08/06/67161.aspx
fri, 06 aug 2004 16:33:00 gmt
http://blog.csdn.net/zhongmao/archive/2004/08/06/67161.aspx
http://blog.csdn.net/zhongmao/comments/67161.aspx
http://blog.csdn.net/zhongmao/archive/2004/08/06/67161.aspx#フィードバック
0
http://blog.csdn.net/zhongmao/comments/commentrss/67161.aspx
http://blog.csdn.net/zhongmao/services/trackbacks/67161.aspx
テスト単語の説明


zhongmaoクリエイター>
xmlhttp
http://blog.csdn.net/zhongmao/archive/2004/08/02/58417.aspx
mon, 02 aug 2004 10:11:00 gmt
http://blog.csdn.net/zhongmao/archive/2004/08/02/58417.aspx
http://blog.csdn.net/zhongmao/comments/58417.aspx
http://blog.csdn.net/zhongmao/archive/2004/08/02/58417.aspx#フィードバック
0
http://blog.csdn.net/zhongmao/comments/commentrss/58417.aspx
http://blog.csdn.net/zhongmao/services/trackbacks/58417.aspx
xmlhttpaaa asd bb cc dd

チャンネル>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。