您的位置:首页 > 编程语言 > PHP开发

php递归遍历xml

2017-07-23 09:39 211 查看
nodeType的值:

如果是1,则为元素节点

如果是2,则为属性

如果是3,这位值节点

如果是9,则为根节点

值节点的名称是“#text”,根节点的名称是“#document”

<?php
echo '<meta http-equiv="content-type" content="text/html; charset=utf-8">';
//递归xml文档
function getChilds($node){
echo "<ul>";
if($node->nodeType == 3){
echo "<li>" . $node->nodeValue . "</li>";
} else {
echo "<li>" . $node->nodeName . "</li>";
if($node->attributes->length > 0){
//此节点有属性
foreach ($node->attributes as $attr){
echo "<li>" . $attr->value . "</li>";
}
}
//遍历循环子元素
foreach ($node->childNodes as $child) {
getChilds($child);
}
}
echo "</ul>";
}

$doc = new DOMDocument();
//不保护空格,就是导入xml的时候去掉空白字符
$doc->preserveWhiteSpace = false;
$doc->load('books.xml');
//获得最顶层元素
$root = $doc->documentElement;
getChilds($root);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: