如何将xml数据转换为简单易读的数组数据呢?本文分享的这段代码,可以实现这个功能,有需要的朋友看看吧。
以下代码,实现将xml转换为数组的功能。 例子: parser = xml_parser_create(); xml_set_object($this->parser,&$this); xml_set_element_handler($this->parser,"tag_open","tag_close"); xml_set_character_data_handler($this->parser,"cdata"); } function parse($data) { $this->data=array(); $this->struct=array(); $this->tag_cur=0; xml_parse($this->parser,$data); return $this->data; } function tag_open($parser,$tag,$attributes) { $this->struct[]=$tag; $this->tag_cur++; } function cdata($parser,$cdata) { $tmp=&$this->data; for($i=0;$i<$this->tag_cur;$i++) { if(!isset($tmp[$this->struct[$i]])) { $tmp[$this->struct[$i]]=array(); } $tmp=&$tmp[$this->struct[$i]]; } if(!empty($tmp)) { $tmp1=$tmp; if(is_array($tmp1)) { $tmp=array_merge($tmp1,array($cdata)); }else{ $tmp=array($tmp1,$cdata); } }else $tmp=$cdata; } function tag_close($parser,$tag) { array_pop($this->struct); $this->tag_cur--; } } $xml=new xml(); echo ""; print_r($xml->parse('"; ?> 说明: 也可以使用 simplexml_load_string函数轻松搞定。 |