我得到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;
但这是行不通的。
答案 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;