這篇文章主要介紹了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讀取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中文網! 🎜