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

PHP遍历解析XML为一个数组

2011-04-01 18:40 357 查看
public function parseXML($menus){
$result = array();
foreach($menus as $menu){
$tmparr = array();

//    处理空文本节点方式A
if( $menu->nodeName !='#text'){

//    检索子元素时跳跃过文本节点  - 处理空文本节点方式B
for($i=1; $i<$menu->childNodes->length; $i+=2) {
$aNode = $menu->childNodes->item($i);

//    子元素遍历
$aNode->childNodes->length > 1 ? $tmparr[$aNode->nodeName] = $this->parseXML( $aNode->childNodes)
: $tmparr[$aNode->nodeName] = $aNode->nodeValue;
}
array_push($result,$tmparr);
}
}
return $result;
}

$doc = new DOMDocument();
$doc->load ( ‘a.xml’ );

//    第一种,有空文本节点
$menus =  $doc->getElementsByTagName('siteMap')->item(0)->childNodes;

//    第二种,明确指定标签,序列无空文本节点。但子元素仍然有空节点

$xpath = new DOMXPath($doc);
$query = "/siteMap/child::a";

$menus = $xpath->query($query);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: