主要是应用SimpleXML和递归函数来根据key值来查询,并将结果以xml格式输出。
<?php header("Content-type: text/xml"); //以xml格式输出文件 @$key=$_GET['key']; $find=false; //echo $key."<br>"; $xml = simplexml_load_file('codetree.xml'); $part = $xml->tree; foreach ( $part as $content ) { //如果查找到了,显示 if ($content['key']==$key) { display($content); exit(); } //如果没找到,继续查找 else { findnext($content,$key); } } //显示数据 function display($value) { foreach($value as $val) { if($val["key"]!="") { echo '<tree text="'.$val["text"].'" key="'.$val['key'].'">'." "; } else { echo '<tree text="'.$val["text"].'" />'." "; } display($val); } if($value["key"]!="") { echo "</tree> "; } } function findnext($value,$key) { foreach($value as $val) { //如果查找到了,显示 if ($val['key']==$key) { echo '<tree text="'.$val["text"].'" key="'.$val['key'].'">'." "; display($val); exit(); } //如果没找到,继续查找 else { findnext($val,$key); } } }
查询key值为"0-0-0-1-0"的结果。