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

PHP 递归解析XML 查找XML节点内容 显示XML节点名称和值

2008-07-23 14:59 627 查看
<?php
$dom = new domDocument;
$dom->loadXML('10005014mas5002008-06-3013512008-06-30USD1351Alicia Garage Doors9 EncinaPine BushNY12566USAAlicia Garage Doors9 EncinaPine BushNY12566USABaileywick4260 Norex DriveChaskaUSA55318MNBitronic Autoswitch Kit, 2 port revers1 240Cables1 4800.02');
if (!$dom) {
echo 'Error while pars	ing the document';
exit;
}
$s = simplexml_import_dom($dom);
//echo $s->CommitRequest->InvoiceRequest->SaleDate;
//print_r($s);
$return = parseXML($s,"MerchantId",true);//if param3 is true,will show xml content
echo $return;
echo "<br>/n----------------------------------------------------<br>/n";
//RecurseXML($s,"root");
//SimpleXMLElement
function parseXML($simpleXML,$finaName,$isShow){
global $ret;
foreach ($simpleXML as $xml){
$t = count($xml);
$temp = $xml;
if($isShow) echo($temp->getName()).": ";
if($isShow) echo $temp->Attributes()->getName()."=";
if($isShow) echo $temp->Attributes();
if($isShow) echo($temp);
if($temp->getName()==$finaName&&$finaName!=""){
$ret = $temp;
if(!$isShow) break;
}
if($t=0){
if($isShow) echo "<br>/n";
}
else{
if($isShow) echo "<br>/n";
parseXML($temp,$finaName,$isShow);
}
}
return $ret;
}
//show xml content
function RecurseXML($xml,$parent="")
{
$child_count = 0;
foreach($xml as $key=>$value)
{
$child_count++;
if(RecurseXML($value,$parent.".".$key) == 0)  // no childern, aka "leaf node"
{
print($parent . "." . (string)$key . " = " . (string)$value . "<br>/n");
}
}
return $child_count;
}

?>

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  xml php parsing string import