首頁  >  文章  >  後端開發  >  PHP使用DOM和simplexml讀取xml文檔的方法範例

PHP使用DOM和simplexml讀取xml文檔的方法範例

高洛峰
高洛峰原創
2017-02-10 16:47:041390瀏覽

這篇文章主要介紹了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(&#39;Content-type:text/html;charset=utf-8&#39;);
$arr=array();
$dom = new DOMDocument();//创建DOM对象
$dom->load(&#39;./books.xml&#39;);//载入xml文档
print_r($dom);
echo &#39;<hr>&#39;;
$dom = $dom->getElementsByTagName(&#39;book&#39;);//截取标签
for($i=0;$i<$dom->length;$i++){
 if($dom->item($i)->childNodes->item(1)->childNodes->item(0)->wholeText==&#39;金庸&#39;){
  $arr[] = $dom->item($i)->childNodes->item(0)->childNodes->item(0)->wholeText.&#39;<br />&#39;;//获取内容
 }
}
print_r($arr);

使用getElementsByTagName 和childNodes 後返回的都是對象,所以它們後面必須使用item(int),即使它們返回的對象必須裡面只包含一個項目,也必須用item(0)來指定,否則就會出錯。

用simplexml代碼實現:

$simxml = simplexml_load_file(&#39;./books.xml&#39;);
$t = $simxml->book;
$arr=array();
foreach ($t as $v){
 if($v->author==&#39;金庸&#39;){
  $arr[] = (string)$v->title;
 }
}
print_r($arr);

使用simplexml_load_file 後返回的是對象,該對象裡的項目既有對象又有數組,不管是對象還是數組,要循環裡面的內容都可以用數組foreach。該實例最後取得的內容 $v->title 其實是個對象,所以要用 string 轉換為字串。

更多PHP使用DOM和simplexml讀取xml文檔的方法範例相關文章請關注PHP中文網! 🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn