实现遍历并解析xml文件为一个数据,代码如下:
复制代码 代码示例:
<?php
/**
* 遍历并解析xml文件为一个数组
* edit www.jb200.com
*/
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);
?>
在很多的php教程中,都有php操作xml文件的内容,今天这个代码相对简单易懂,适全初学的朋友参考。
脚本学堂,祝大家学习进步。