如何使用SimpleXML访问XML元素的最后一个属性?

时间:2017-06-16 15:24:56

标签: xml simplexml cxml

我正在使用SimpleXML来解析cXML文档。我无法弄清楚如何从文档中最深的元素访问属性。当我解析属性"货币"在下面的xml片段中它并不存在。我发现这只发生在最深层的元素上。有没有办法可以使用SimpleXML解析这个文档?

我试图解析的XML文档的示例部分。

<ItemOut name="ItemOut">
<ItemDetail name="ItemDetail">
    <UnitPrice name="UnitPrice">
        <Money currency="USD">12.99</Money>
    </UnitPrice>
</ItemDetail>

我尝试过使用json编码/解码方式...

$simpleXml=simplexml_load_string($xml);
$json = json_encode($simpleXml);
$xmlArray = json_decode($json,TRUE);

并使用SimpleXML对象...
$xmlObject = new SimpleXMLElement($xml);

这是一张照片 array structure of the parsed document.

1 个答案:

答案 0 :(得分:1)

我认为你需要运行

<?php
$xmlObject = new SimpleXMLElement($xml);
$currency = $xmlObject-> ItemDetail -> UnitPrice -> Money -> attributes() -> currency;
?>

这将读取您的货币属性并在您的案例中返回EUR