2016-01-11 47 views
1

我正在研究PHP中的一个小应用程序,该应用程序应该从XML获取一些数据以计算一些帐单。在xml中选择特定区域

我有这样的XML的使用方法: http://www.bnr.ro/files/xml/years/nbrfxrates2016.xml

它已经返回了我一个数组,解析是没有问题的。 我不知道如何只显示特定日期的数据。 比方说,我想使用2016年1月5日的货币。我怎么做?

每天还有一个XML可用。如果我使用它,代码如下所示:var_dump($array['Body']['Cube']['Rate'][10])例如。我不知道如何选择具有特定属性的身体。在这种情况下,日期。

回答

0

您可以使用XPath选择,它可以让相当复杂的查询:

$xml = new SimpleXMLElement($string); 
$xml->registerXPathNamespace('a', 'http://www.bnr.ro/xsd'); 
$result = $xml->xpath('/a:DataSet/a:Body/a:Cube[@date="2016-01-05"]/a:Rate'); 
print_r($result); 
+1

您注册命名空间前缀不使用它,比如:'/ A:数据集/ A:身体/ A:魔方[@日期= “2016年1月5日”] /一个:Rate'。 – ThW

+0

@你说得对,我解决了这个问题。 [Demo here](http://sandbox.onlinephpfunctions.com/code/c5b3c31bfd91c252c9a6a55cac964e8a3d452c20) – fafl