2015-10-05 33 views
0

我想通过一个REA-XML文件的读取和使用SimpleXML将XML转换为数组属性不是simplexml的阵列

$xml = simplexml_load_string($data) or die("Error: Cannot create object"); 

中有看起来像这样的XML节:

<images> 
    <img id="a" modTime="2009-01-01-12:30:00" url="http://image.jpg" format="jpg"/> 
    <img id="m" modTime="2009-01-01-12:30:00" url="https://image.jpg" format="jpg"/> 
</images> 

当转换为一个数组,一个附加的数组元素“@属性”与modTime在它创建等。

然而,在相同的XML,相同的水平:

<landDetails> 
     <area unit="square">80</area> 
     <frontage unit="meter">20</frontage> 
     <depth unit="meter" side="rear">40</depth> 
     <crossOver value="left"/> 
</landDetails> 

“单位”属性被完全丢失, 在交叉“值”,该值是在“@属性”阵列,但是“单元”的其他三个项目完全从var_dump丢失

为什么单位值不显示在@attribute数组中,或landDetails部分中的任何其他位置?

完整的示例XML:

http://rea-new-help.realestate.com.au.s159598.gridserver.com/wp-content/uploads/2013/05/rental_sample.xml

回答

2

Quck指针: php SimpleXML attributes are missing

基本上的SimpleXML和print_r/var_dump没有发挥很好:如果对象树遍历例如$xml->area你会看到忠实地呈现对象:

SimpleXMLElement Object ([@attributes] => Array ([unit] => square) [0] => 80) 

这是那里有两个属性和内容元素,尤其如此。