PHP遍历XML文档所有节点的方法

yipeiwu_com5年前PHP代码库

本文实例讲述了PHP遍历XML文档所有节点的方法。分享给大家供大家参考。具体实现方法如下:

1. contact.xml代码:

<contact id="43956">
   <personal>
     <name>
        <first>J</first>
        <middle>J</middle>
        <last>J</last>
     </name>
     <title>Manager</title>
     <employer>National</employer>
     <dob>1971-12-22</dob>
   </personal>
</contact>

2. php代码:

<?php
   function walk_tree ($node, $depth = 0) {
     for ($i = 0, $indent = ''; $i < $depth; $i++)
        $indent .= '   ';
     if ($node->type == XML_ELEMENT_NODE) {
        print ($indent . $node->tagname . "\n");
        $kids = $node->children ();
        $nkids = count ($kids);
        if ($nkids > 0) {
           $depth++;
           for ($i = 0; $i < $nkids; $i++)
             walk_tree ($kids[$i], $depth);
           $depth--;
        }
     }
   }
   $doc = xmldocfile ('contact.xml');
   print ("<pre>\n");
   walk_tree ($doc->root ());
   print ("</pre>\n");
?>

希望本文所述对大家的php程序设计有所帮助。

相关文章

PHP动态创建Web站点的方法

PHP有4个用于使用外部函数的函数:include()、include_once()、require()和require_once(). 为了使用它们,PHP脚本中将包括如下代码行: i...

PHP 远程关机实现代码

复制代码 代码如下: <?php /** * 远程启动计算机 * 注意:iis/apache需要有windows/system/cmd.exe执行权限 * name:薛如飞 * q...

php计算两个文件相对路径的方法

本文实例讲述了php计算两个文件相对路径的方法。分享给大家供大家参考。具体如下: 一、问题: 写一个php函数算出两个文件的相对路径。例如$a="/a/b/c/d/e.php"; $b=...

php上传大文件失败的原因及应对策略

php上传大文件失败的原因及应对策略

为什么上传大文件总是失败,但是上传小文件就没有问题。小编也不得其解,网上搜其原因,整理了一篇关于php上传大文件失败的原因和解决办法的文章,分享给大家。 下面分别是各种原因以及解决办法...

PHP下10件你也许并不了解的事情

另一方面,有时候可以用一行简单的代码就能解决一个难题。 下面是一些很酷的特性,很可能你也没有注意到: 使用 ip2long() 和 long2ip() 函数来把 IP 地址转化成整型存...