在SimpleXML中逐个元素地获取属性值和另一个属性值

时间:2018-02-17 11:03:22

标签: php simplexml

我有这样的XML:

<root>
    <some_nodes>
    </some_nodes>
    <currencies>
        <currency id="UAH" rate="1.000000"/>
        <currency id="USD" rate="27.000000"/>
        <currency id="RUB" rate="0.380000"/>
        <currency id="EUR" rate="29.350000"/>
    </currencies>
</root>

如何在货币ID =&#34; EUR&#34;使用SimpleXML?没有foreach可以吗?

1 个答案:

答案 0 :(得分:0)

您可以使用SimpleXML的xpath方法根据另一个属性的值返回节点的属性:

$sxml = simplexml_load_string($xml);

$rate = (float) $sxml->xpath('./currencies/currency[@id="EUR"]/@rate')[0];

echo $rate;

请注意,该方法将始终返回一个数组,因此我们需要请求第一个元素,然后将该值转换为float。

有关完整示例,请参阅https://eval.in/957883