php转换xml转换为数组,如何在php中将XML转换为数组?

转换XML字符串($buffer)到一个简化的数组中,忽略属性并对具有相同名称的子元素进行分组:function XML2Array(SimpleXMLElement $parent){

$array = array();

foreach ($parent as $name => $element) {

($node = & $array[$name])

&& (1 === count($node) ? $node = array($node) : 1)

&& $node = & $node[];

$node = $element->count() ? XML2Array($element) : trim($element);

}

return $array;}$xml   = simplexml_load_string($buffer);$array = XML2Array($xml);$array = array($xml->getName() => $array);

结果:Array(

[aaaa] => Array

(

[bbb] => Array

(

[cccc] => Array

(

[dddd] =>

[eeee] =>

)

)

))

如果您还想拥有这些属性,则可以通过SimpleXMLElement的JSON编码/解码获得这些属性。这通常是最简单的快速“n”脏解决方案:$xml   = simplexml_load_string($buffer);$array = json_decode(json_encode((array) $xml), true);$array = array($xml->getName() => $array);

结果:Array(

[aaaa] => Array

(

[@attributes] => Array

(

[Version] => 1.0

)

[bbb] => Array

(

[cccc] => Array

(

[dddd] => Array

(

[@attributes] => Array

(

[Id] => id:pass

)

)

[eeee] => Array

(

[@attributes] => Array

(

[name] => hearaman                                            [age] => 24

)

)

)

)

))

请注意,所有这些方法只在XML文档的命名空间中工作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值