php解析xml方法实例详解

本文以实例形式详细讲述了php解析xml方法。分享给大家供大家参考。具体分析如下:

books.xml文件如下:

  <?xml version="1.0" encoding="ISO-8859-1"?>  <bookstore>   <book category="children">   <title lang="en">Harry Potter</title>   <author>J K. Rowling</author>   <year>2005</year>   <price>29.99</price>   </book>   <book category="cooking">   <title lang="en">Everyday Italian</title>   <author>Giada De Laurentiis</author>   <year>2005</year>   <price>30.00</price>   </book>   <book category="web" cover="paperback">   <title lang="en">Learning XML</title>   <author>Erik T. Ray</author>   <year>2003</year>   <price>39.95</price>   </book>  </bookstore>

1、DOM解析XML

  <?php   //创建一个DOMDocument对象   $doc=new DOMDocument();   //加载XML文件   $doc->load("books.xml");   //获取所有的book标签   $bookDom=$doc->getElementsByTagName("book");   foreach($bookDom as $book){    $title = $book->getElementsByTagName("title")->item(0)->nodeValue;    $author = $book->getElementsByTagName("author")->item(0)->nodeValue;    $year = $book->getElementsByTagName("year")->item(0)->nodeValue;    $price = $book->getElementsByTagName("price")->item(0)->nodeValue;    echo "title:".$title."<br>";    echo "author:".$author."<br>";    echo "year:".$year."<br>";    echo "price:".$price ."<br>";    echo "***********************************<br>";   }  ?>

2、xml_parse_into_struct

创建解析器,将xml数据解析到数组,释放解析器,再有就是从数组中提取想要的值。

  <?php   // 读取xml文件   $file = "books.xml";   $data = file_get_contents($file);   // 创建解析器   $parser = xml_parser_create();   // 将 XML 数据解析到数组中   xml_parse_into_struct($parser, $data, $vals, $index);   // 释放解析器   xml_parser_free($parser);   // 数组处理   $arr = array();   $t=0;   foreach($vals as $value) {   $type = $value['type'];   $tag = $value['tag'];   $level = $value['level'];   $attributes = isset($value['attributes'])?$value['attributes']:"";   $val = isset($value['value'])?$value['value']:"";   switch ($type) {    case 'open':    if ($attributes != "" || $val != "") {     $arr[$t]['tag'] = $tag;     $arr[$t]['attributes'] = $attributes;     $arr[$t]['level'] = $level;     $t++;    }     break;    case "complete":    if ($attributes != "" || $val != "") {     $arr[$t]['tag'] = $tag;     $arr[$t]['attributes'] = $attributes;     $arr[$t]['val'] = $val;     $arr[$t]['level'] = $level;     $t++;    }     break;   }    }    echo "<pre>";   print_r($arr);   echo "</pre>";  ?>  

3、用 SAX 解析器读取 XML—–XML Simple API(SAX)解析器

  <?php   $file="books.xml";   $xml = simplexml_load_file($file);   echo "<pre>";   print_r($xml);   echo "</pre>";  ?>

希望本文所述对大家的php程序设计有所帮助。

php解析xml方法实例详解

郑重声明:本网站发布的内容(图片、视频和文字)以及用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服

发表评论

登录后才能评论