时间:2021-07-01 10:21:17 帮助过:1人阅读
|
如何将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 "
说明: 也可以使用 simplexml_load_string函数轻松搞定。 |