php解析xml方法实例(附代码)详细说明

互联网 17-3-12
这篇文章主要介绍了php解析xml方法,以实例形式详细分析了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解析xml方法实例(附代码)详细说明的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 解析XML
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:xml语法详细说明

相关资讯