PHP XMLドキュメントの全ノードを巡る方法


この例は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 . "
"); $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>
"); walk_tree ($doc->root ()); print ("</pre>
"); ?>
本論文で述べたように、皆さんのphpプログラムの設計に役に立ちます。