您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關解析XML的案例,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
一.解析XML
創建demo.xml文件:
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book book_id="1"> <title>php</title> <author>php入門到放棄</author> </book> <book book_id="2"> <title>java</title> <author>java入門到放棄</author> </book> <book book_id="3"> <title>C</title> <author>C入門到放棄</author> </book></bookstore>
使用PHP解析demo.xml中的內容,以獲取到php這個文本節點為例:
<?php /*思路:1.先載入xml文檔 2.獲取節點列表對象 3.獲取子節點對象 4.獲取子節點列表對象 5.獲取文本對象 如果層級比較深就是循環2-4步,先拿列表對象,再拿子節點對象...*/ $dom = new DOMDocument('1.0','UTF-8'); //print_r($dom); //DOMDocument Object $dom->load('demo.xml'); //載入要解析的xml文檔 $titleList = $dom->getElementsByTagName('title'); ////DOMNodeList Object ( [length] => 3 ) 獲取節點列表對象 $title = $titleList->item(0); //DOMElement Object 獲取子節點對象 $title = $title->childNodes; //DOMNodeList Object ( [length] => 1 )獲取子節點列表對象 $title = $title->item(0); //DOMText Object 獲取到文本對象 $text = $title->wholeText; //獲取到文本內容 echo $text; //php echo '<br>'; //也可以直接寫成連貫操作: $text = $dom->getElementsByTagName('title')->item(0)->childNodes->item(0)->wholeText; echo $text; //php echo '<br>'; //第二種方法: $text = $dom->getElementsByTagName('title')->item(0)->nodeValue; //獲取到文本內容 echo $text; //php
除了解析之外,還可以對xml節點進行刪除和替換操作:
$dom = new DOMDocument('1.0','UTF-8'); $dom->load('demo.xml'); //載入要解析的xml文檔 /** *xml刪除節點 * */ $php = $dom->getElementsByTagName('book')->item(0); //獲取文本節點 $php->parentNode->removeChild($php); //獲取文本節點的父節點,然后站在父節點的立場刪除子文本節點 /** * xml替換節點 * */ $java = $dom->getElementsByTagName('title')->item(0); //獲取要替換的文本節點 $newnode = $dom->createTextNode('python'); //創建新的文本節點 $java->replaceChild($newnode,$java->firstChild); //用新節點替換舊文本節點內容 header("content-type:text/xml"); echo $dom->saveXML(); //直接輸出xml文本
二.創建XML
使用PHP創建一個如下的XML文件:
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book book_id="1"> <title>php</title> <author><![CDATA[PHP是世界上最好的編程語言.emmm...]]></author> </book></bookstore>
PHP代碼:
<?php $dom = new DOMDocument('1.0','UTF-8'); $text = $dom->createTextNode('php'); //創建文本節點 $title = $dom->createElement('title'); //創建普通節點 $title->appendChild($text); //將文本節點作為子節點添加到普通節點內 $cdata = $dom->createCDATASection('PHP是世界上最好的編程語言.emmm...'); //創建CDATA節點 $author = $dom->createElement('author'); //創建普通節點 $author->appendChild($cdata); //將CDATA節點作為子節點添加到普通節點內 $book = $dom->createElement('book'); //創建普通節點 //將上面創建的兩個普通節點作為子節點添加到普通節點內 $book->appendChild($title); $book->appendChild($author); $book_id = $dom->createAttribute('book_id'); //創建屬性名 $book_id->value = '1'; //創建屬性值 $book->appendChild($book_id); //將屬性加到普通節點內 $bookstore = $dom->createElement('bookstore'); //創建普通節點 $bookstore->appendChild($book); //將普通節點作為子節點添加到普通節點內 $dom->appendChild($bookstore); //將普通節點添加到文檔內 // header("content-type:text/xml"); // echo $dom->saveXML(); //直接輸出xml文本 echo $dom->save('demo.xml'); //生成xml文件
在瀏覽器輸出如下圖:
關于解析XML的案例就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。