使用PHP搜索XML文件

Cyb*_*min 2 php xml

我有一个像这样的XML文件:

<quotes>
  <quote>
    <symbol>7UP</symbol>
    <change>0</change>
    <close>45</close>
    <date>2011-08-24</date>
    <high>45</high>
  </quote>
</quotes>
Run Code Online (Sandbox Code Playgroud)

我希望通过PHP 搜索此文档symbol并获取匹配close值.

谢谢.

net*_*der 7

使用XPath.

使用SimpleXML:

$sxml = new SimpleXMLElement($xml);
$close = $sxml->xpath('//quote[symbol="7UP"]/close/text()');
echo reset($close); // 45
Run Code Online (Sandbox Code Playgroud)

使用DOM:

$dom = new DOMDocument;
$dom->loadXML($xml);
$xpath = new DOMXPath($dom);
$close = $xpath->query('//quote[symbol="7UP"]/close/text()')->item(0)->nodeValue;
echo $close;        // 45
Run Code Online (Sandbox Code Playgroud)

...对于数值,特别是DOM,你可以做(​​如@fireeyedboy所建议的):

$close = $xpath->evaluate('number(//quotes/quote[symbol="7UP"]/close/text())');
echo $close;        // 45
Run Code Online (Sandbox Code Playgroud)