欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php转换xml为数组的代码分享

程序员文章站 2022-03-16 23:11:00
...
如何将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;$itag_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('b1b2d1d1_2d1_31'));  
echo "
"; ?>

说明: 也可以使用 simplexml_load_string函数轻松搞定。