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);
如果是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);
相关文章推荐
- php递归遍历删除文件的方法
- php如何实现递归遍历文件目录?
- java非递归实现Xml的遍历(多叉树遍历)
- PHP递归遍历文件夹
- php递归遍历文件夹
- PHP多维数组的递归遍历
- php深度优先递归遍历
- 循环递归遍历XML文档或按某要求遍历XML文档
- PHP不用递归遍历目录下所有文件的代码
- php遍历解析xml字符串的方法
- PHP遍历文件夹及子文件夹所有文件(此外还有飞递归的方法)
- PHP 递归解析XML 查找XML节点内容 显示XML节点名称和值
- XML遍历文档树(广度优先与递归)
- 递归实现php数组转xml的代码分享
- 字符多维php递归遍历目录
- php对xml数据循环遍历
- 关于PHP中数组递归遍历的一些见解
- Java采用DOM方式递归遍历XML文件内容
- PHP实现非递归先序、中序、后序遍历二叉树
- 递归遍历XML所有节点