本文以实例形式详细讲述了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程序设计有所帮助。
本文地址:https://www.stayed.cn/item/9863
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我