我有这个来自http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml的 XML
<?xml version="1.0" encoding="UTF-8"?>
<gesmes:Envelope xmlns:gesmes="http://www.gesmes.org/xml/2002-08-01" xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref">
<gesmes:subject>Reference rates</gesmes:subject>
<gesmes:Sender>
<gesmes:name>European Central Bank</gesmes:name>
</gesmes:Sender>
<Cube>
<Cube time='2013-08-23'>
<Cube currency='USD' rate='1.3355'/>
<Cube currency='GBP' rate='0.85910'/>
<Cube currency='HUF' rate='298.98'/>
</Cube>
</Cube>
</gesmes:Envelope>
(出于演示目的,我删除了一些值)
我想获得转换率,比如说,使用 PHP 的 GBP。
HI 可以像这样使用 simplexml 加载它:
$XML=simplexml_load_file("http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml");
foreach($XML->Cube->Cube->Cube as $rate){
...
但我想在不迭代的情况下获得价值,我真的不想使用正则表达式......
我尝试了这样的事情,但没有奏效:
$sxe=simplexml_load_file("http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml");
$sxe->registerXPathNamespace('c', 'http://www.gesmes.org/xml/2002-08-01');
$result = $sxe->xpath('//c:Cube[@currency="USD"]');