您好,登錄后才能下訂單哦!
PHP中怎么利用DOM和simplexml讀取xml文檔,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
用DOM獲取下列xml文檔中所有金庸小說的書名,該xml文檔所在位置為 ./books.xml:
<?xml version="1.0" encoding="utf-8"?> <root> <book> <title>天龍八部</title> <author>金庸</author> </book> <book> <title>陸小鳳</title> <author>古龍</author> </book> <book> <title>倚天屠龍記</title> <author>金庸</author> </book> <book> <title>西游記</title> <author>吳承恩</author> </book> <book> <title>神雕俠侶</title> <author>金庸</author> </book> <book> <title>射雕英雄傳</title> <author>金庸</author> </book> </root>
用DOM代碼實現:
DOM讀取xml文檔步驟:1、創建DOM對象——》2、載入DOM文檔內容——》3、截取要讀取內容所在的標簽——》獲得要讀取的內容。
header('Content-type:text/html;charset=utf-8'); $arr=array(); $dom = new DOMDocument();//創建DOM對象 $dom->load('./books.xml');//載入xml文檔 print_r($dom); echo '<hr>'; $dom = $dom->getElementsByTagName('book');//截取標簽 for($i=0;$i<$dom->length;$i++){ if($dom->item($i)->childNodes->item(1)->childNodes->item(0)->wholeText=='金庸'){ $arr[] = $dom->item($i)->childNodes->item(0)->childNodes->item(0)->wholeText.'<br />';//獲取內容 } } print_r($arr);
使用 getElementsByTagName 和 childNodes 后返回的都是對象,所以它們后面必須使用 item(int),哪怕它們返回的對象里面只包含一個項目,也必須用item(0)來指定,否則就會出錯。
用simplexml代碼實現:
$simxml = simplexml_load_file('./books.xml'); $t = $simxml->book; $arr=array(); foreach ($t as $v){ if($v->author=='金庸'){ $arr[] = (string)$v->title; } } print_r($arr);
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。