通过元素和另一个属性值获取 SimpleXML 对象中的属性值

Get attribute value in SimpleXML object by element and another attribute value

我有这样的 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>

如何使用 SimpleXML 获取货币 id="EUR" 的汇率值?没有foreach可以吗?

您可以使用 SimpleXML 的 xpath 方法 return 基于另一个属性值的节点属性:

$sxml = simplexml_load_string($xml);

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

echo $rate;

请注意,该方法总是 return 一个数组,因此我们需要获取第一个元素,然后将值转换为浮点数。

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