PHP simpleXML解析
我需要货币兑换,欧元兑美元。PHP simpleXML解析,php,simplexml,nodes,Php,Simplexml,Nodes,我需要货币兑换,欧元兑美元。 欧洲中央银行在此提供利率: 我可以使用第一个节点获取美元汇率,但是如果他们更改订单怎么办? 我需要更可靠的东西吗?我不知道如何 $xml = @simplexml_load_file('http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml'); echo "dollar: " . $xml->Cube->Cube->Cube[0]->attributes()->rat
欧洲中央银行在此提供利率:
我可以使用第一个节点获取美元汇率,但是如果他们更改订单怎么办?
我需要更可靠的东西吗?我不知道如何
$xml = @simplexml_load_file('http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml');
echo "dollar: " . $xml->Cube->Cube->Cube[0]->attributes()->rate;
您可以使用
foreach
foreach( $xml->Cube->Cube as $cube ) {
if( isset( $cube->attributes()->rate ) ) {
$rate = $cube->attributes()->rate;
}
}
他们在本页提供了示例代码:
如果他们改变了顺序,你就不必麻烦了。如果他们这样做了,他们就会这样做。只要使用XPath获取属性@currency等于“USD”的任何节点,就可以了
$xref = simplexml_load_file('http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml');
$nodes = $xref->xpath('//*[@currency="USD"]');
echo $nodes[0]['rate'];
您可以使用xpath
$rate = $xml->xpath("//Cube[currency='USD']/rate")
你说得对。目前,您假设第0个
0
条目为USD
,如果未来订单发生变化,您的假设将失败。因此,为了使应用程序独立于订单,可以在循环中检查currency
属性。当您找到一个具有值“USD”
的值时,您可以获得其相应的rate
属性