這篇文章主要介紹了PHP使用DOM和simplexml讀取xml文檔的方法,結合實例形式分析了php使用DOM及simplxml針對xml文件的創建、載入、讀取等相關操作技巧,需要的朋友可以參考下
本文實例講述了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);
使用simplexml_load_file 後面傳回的是對象,該物件裡的項目既有物件又有數組,不管是物件還是數組,要循環裡面的內容都可以用foreach。該實例最後取得的內容 $v->title 其實是個對象,所以要用 string 轉換為字串。
以上就是本文的全部內容,希望對大家的學習有所幫助。
相關推薦:
########################################################### ##########
以上是PHP使用DOM和simplexml讀取xml文件的方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!