自定义了一个php解析xml的接口,话不多说直接上代码
<?php
header("Content-type: text/html; charset=utf-8");
//递归XML文档
$ars=array();//递归出去的总数据数组
$url='./test.xml';
function getChilds($node){
global $ars;
$arr1=array();
if($node->nodeType==3){//如果是值节点
echo "<li>".$node->nodeValue."</li>";
}
else{//不是值节点
// echo "<li>".$node->nodeName."</li>";//取出元素节点的名称
if($node->attributes->length>0) {//节点的属性的个数大于0,表示此节点有属性
foreach ($node->attributes as $attr){
$arr['tag']=$node->nodeName;//自定义部分
$arr['name']=$attr->name;//自定义部分
$arr['value']=$attr->value;//自定义部分
array_push($arr1,$arr);
}
}
foreach ($node->childNodes as $child) {//遍历循环子元素
getChilds($child);//递归点
}
array_push($ars,$arr1);
}
}
$doc=new DOMDocument();
$doc->preserveWhiteSpace=false;//不保护空格,就是导入XML的时候,去掉空白字符
$doc->load($url);
$root=$doc->documentElement;//获得最顶层元素
getChilds($root);
var_dump($ars);//打印结果