来自 xml 元素的属性不在简单 xml 数组中
Attributes from xml element not in simplexml array
我正在尝试通读 REA-XML 文件并使用简单xml 将 xml 转换为数组
$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>
当转换为数组时,会创建一个额外的数组元素“@attributes”,其中包含 modTime 等。
然而,在同一个 XML ,同一个级别:
<landDetails>
<area unit="square">80</area>
<frontage unit="meter">20</frontage>
<depth unit="meter" side="rear">40</depth>
<crossOver value="left"/>
</landDetails>
"unit" 属性完全缺失,
crossOver 中 "value" 的值位于“@attributes”数组中,但 "unit" 的其他三个项目在 var_dump
中完全缺失
为什么单位值不显示在@attribute 数组中,或 landDetails 部分的其他任何地方?
完整示例 XML:
快速指针:
php SimpleXML attributes are missing
基本上,SimpleXML 和 print_r
/var_dump
表现不佳:如果您遍历对象树,例如$xml->area
您将看到忠实呈现的对象:
SimpleXMLElement Object ( [@attributes] => Array ( [unit] => square ) [0] => 80 )
对于同时具有属性和内容的元素尤其如此。
我正在尝试通读 REA-XML 文件并使用简单xml 将 xml 转换为数组
$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>
当转换为数组时,会创建一个额外的数组元素“@attributes”,其中包含 modTime 等。
然而,在同一个 XML ,同一个级别:
<landDetails>
<area unit="square">80</area>
<frontage unit="meter">20</frontage>
<depth unit="meter" side="rear">40</depth>
<crossOver value="left"/>
</landDetails>
"unit" 属性完全缺失, crossOver 中 "value" 的值位于“@attributes”数组中,但 "unit" 的其他三个项目在 var_dump
中完全缺失为什么单位值不显示在@attribute 数组中,或 landDetails 部分的其他任何地方?
完整示例 XML:
快速指针: php SimpleXML attributes are missing
基本上,SimpleXML 和 print_r
/var_dump
表现不佳:如果您遍历对象树,例如$xml->area
您将看到忠实呈现的对象:
SimpleXMLElement Object ( [@attributes] => Array ( [unit] => square ) [0] => 80 )
对于同时具有属性和内容的元素尤其如此。