php 如何将xml转为数组array

来源:互联网 发布:北京上游网络怎么样 编辑:程序博客网 时间:2024/06/13 01:38
/** * xml转化为数组 * @param  [type] $xml [description] * <xml> *     <appid><![CDATA[wx495813085bb41c7a]]></appid> *     <attach><![CDATA[4757,10]]></attach> * </xml> * @return [type]      [description] *Array(    [0] => Array        (            [tag] => APPID            [attributes] =>             [val] => wx495813085bb41c7a            [level] => 2        )    [1] => Array        (            [tag] => ATTACH            [attributes] =>             [val] => 4757,10            [level] => 2        )) *  */function xml_to_array($xml){     // 创建解析器   $parser = xml_parser_create();     // 将 XML 数据解析到数组中   xml_parse_into_struct($parser, $xml, $vals, $index);     // 释放解析器   xml_parser_free($parser);     // 数组处理   $arr = array();   $t=0;   foreach($vals as $value) {       $type = $value['type'];       $tag = $value['tag'];       $level = $value['level'];       $attributes = isset($value['attributes'])?$value['attributes']:"";       $val = isset($value['value'])?$value['value']:"";       switch ($type) {          case 'open':          if ($attributes != "" || $val != "") {             $arr[$t]['tag'] = $tag;             $arr[$t]['attributes'] = $attributes;             $arr[$t]['level'] = $level;             $t++;         }          break;         case "complete":         if ($attributes != "" || $val != "") {             $arr[$t]['tag'] = $tag;             $arr[$t]['attributes'] = $attributes;             $arr[$t]['val'] = $val;             $arr[$t]['level'] = $level;             $t++;         }          break;     }  }  return $arr;}

0 0
原创粉丝点击