php读取xml文件总结

不久前做了个功能需要读取xml文件,虽然以前也做过很多次了,但一直没有想过总结一下,今天正好空闲,于是小小总结一番,以方便以后用起来更加顺手,下面开始正文。

假设目前有如下xml源文件,该文件保存名为books.xml:

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <books> 
  3.     <book> 
  4.         <author>phpernote.com</author> 
  5.         <title>PHP And MySQL Development</title> 
  6.         <publisher>火星出版社</publisher> 
  7.     </book> 
  8.     <book> 
  9.         <author>taobao.com</author> 
  10.         <title>如何淘宝</title> 
  11.         <publisher>淘宝出版社</publisher> 
  12.     </book> 
  13. </books> 

(1)利用simplexml读取xml文件,示例如下:

  1. <?php 
  2. header('Content-type:text/html;charset=utf-8'); 
  3. $books=simplexml_load_file('books.xml');//将XML中的数据,读取到数组对象中 
  4. foreach($books as $v){ 
  5.     echo $v->author."-".$v->title."-".$v->publisher."<br>"

如需更详细的了解 PHP SimpleXML 函数,请参考:PHP SimpleXML 函数

(2)利用DOMDocument读取xml文件,示例如下:

  1. <?php 
  2. header('Content-type:text/html;charset=utf-8'); 
  3. $doc=new DOMDocument(); 
  4. $doc->load('books.xml');//读取xml文件 
  5. $book=$doc->getElementsByTagName('book');//取得book标签的对象数组 
  6. echo $book->length,'<br />'
  7. foreach($book as $v){ 
  8.     $author=$v->getElementsByTagName('author');//取得author的标签的对象数组 
  9.     $author=$author->item(0)->nodeValue;//取得node中的值 
  10.     $title=$v->getElementsByTagName('title'); 
  11.     $title=$title->item(0)->nodeValue; 
  12.     $publisher=$v->getElementsByTagName('publisher'); 
  13.     $publisher=$publisher->item(0)->nodeValue; 
  14.     echo "$author - $title - $publisher <br />"

如需更详细的了解 DOMDocument 的有关方法,请参考php官方文档:The DOMDocument class

当然还有很多其他的办法,比如用正则表达式解析等等,这些以后用到的时候再继续追加总结,今天就写了这么两种办法吧,对于一般的已经足够了。

转载请注明:代码家园 » php读取xml文件总结

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)