【发布时间】:2014-10-30 03:41:16
【问题描述】:
我目前正在处理一个扩展的 XML 文件,为了使某些处理更容易,我使用了以下在堆栈溢出中广泛提到的方法
$xml = simplexml_load_string($xml_string);
$json = json_encode($xml);
$array = json_decode($json,TRUE);
这太棒了,但是在查看我的代码时,我注意到某些情况下某些元素的属性没有正确转换,在这一步 $json = json_encode($xml);
这是一个精简的 XML 示例。
<?xml version="1.0"?>
<property>
<landDetails>
<area unit="squareMeter"/>
</landDetails>
<buildingDetails>
<area unit="squareMeter">100</area>
</buildingDetails>
</property>
这是输出。
Array (
[landDetails] => Array (
[area] => Array (
[@attributes] => Array (
[unit] => squareMeter
)
)
)
[buildingDetails] => Array (
[area] => 100
)
)
如上所示,如果元素包含有关该确切节点的任何信息,则不会处理与该元素关联的属性。这会导致转换之间的大量数据丢失。
有人知道如何解决这个问题吗?
提前致谢!
【问题讨论】: