php遍历并解析XML为数组的实现代码

发布时间:2019-08-01编辑:脚本学堂
本文介绍下,php用来遍历并解析xml文件内容为一个数组的实现代码,有需要的朋友参考下吧。

实现遍历并解析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文件的内容,今天这个代码相对简单易懂,适全初学的朋友参考。
脚本学堂,祝大家学习进步。