如何从ID为PHP的XML获取数据

时间:2018-12-21 18:53:12

标签: php xml

我得到XML:

$xml= simplexml_load_file('');

我有XML:

<ValCurs Date="22.12.2018" name="Foreign Currency Market">
 <Valute ID="R01011">
  <NumCode>036</NumCode>
  <CharCode>AUD</CharCode>
  <Nominal>1</Nominal>
  <Name>Dollar A</Name>
  <Value>10</Value>
 </Valute>
 <Valute ID="R01012">
  <NumCode>036</NumCode>
  <CharCode>AUD</CharCode>
  <Nominal>1</Nominal>
  <Name>Dollar B</Name>
  <Value>30</Value>
 </Valute>
 <Valute ID="R01013">
  <NumCode>036</NumCode>
  <CharCode>AUD</CharCode>
  <Nominal>1</Nominal>
  <Name>Dollar C</Name>
  <Value>20</Value>
 </Valute>
</ValCurs>

我需要获取名称和值,其中Valute ID =“ R01013”,我该如何获取?
我尝试:

$xml->Valute_ID="R01013"->Name;
$xml->Valute_ID="R01013"->Value;

但这是行不通的。

1 个答案:

答案 0 :(得分:3)

使用SimpleXML和XPath使这变得很简单。首先加载数据(在这种情况下,我的数据在一个名为“ bok.xml”的文件中-但我认为您已经拥有了这部分)。

然后使用XPath查找具有属性Valute(由ID表示它是一个属性)和要查找的值的@元素。

由于XPath返回一个匹配列表,只有一个然后使用[0],然后您可以使用->Name等来获取后面的值...

$xml = simplexml_load_file("bok.xml");
$valute = $xml->xpath('//Valute[@ID="R01013"]');
echo $valute[0]->Name;