萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP使用DOM和simplexml讀取xml文檔的方法示例

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

小編推薦的這篇文章介紹了PHP使用DOM和simplexml讀取xml文檔的方法示例,非常實用,有興趣的同學可以參考一下本文

實例  用DOM獲取下列xml文檔中所有金庸小說的書名,該xml文檔所在位置為 ./books.xml:

 代碼如下 復制代碼

<?xmlversion="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對象&mdash;&mdash;》2、載入DOM文檔內容&mdash;&mdash;》3、截取要讀取內容所在的標簽&mdash;&mdash;》獲得要讀取的內容。

 代碼如下 復制代碼

header('Content-type:text/html;charset=utf-8');

$arr=array();

$dom=newDOMDocument();//創建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($tas$v){

 if($v->author=='金庸'){

  $arr[] = (string)$v->title;

 }

}

print_r($arr);

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

copyright © 萬盛學電腦網 all rights reserved