使用 PHP 将 XML 转化为易读的数组!

更简单,更好的办法是使用 simplexml_load_string,一个函数就可以轻松解决问题,而且,效果很好!

 

下面的东西,还是看看吧

 

 

class xml { private $parser; private $tag_cur=0; private $data=array(); private $struct=array(); function xml() { $this->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 "<pre>"; print_r($xml->parse('<a><a1><b1>b1</b1><b2>b2</b2><b3><c1><d1>d1</d1><d1>d1_2</d1><d1>d1_3</d1></c1></b3></a1><e1>1</e1></a>')); echo "</pre>";

转载于:https://www.cnblogs.com/Iamlein/archive/2011/04/03/2375907.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值