Поиск файла XML с использованием PHP

У меня есть XML-файл:

<quotes> <quote> <symbol>7UP</symbol> <change>0</change> <close>45</close> <date>2011-08-24</date> <high>45</high> </quote> </quotes> 

Я хочу искать этот документ по symbol и получить соответствующее значение close в PHP.

Благодарю.

Используйте XPath.

Использование SimpleXML:

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

Использование 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 

… для числовых значений, в частности, с DOM, вы можете сделать (как было предложено @fireeyedboy ):

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

Вы можете просто проанализировать свой XML-файл на объект или массив. Это упрощает работу с PHP. Для этого PHP имеет simpleXML , который включен по умолчанию:

http://www.php.net/manual/en/simplexml.installation.php

Пример:

 $xml = new SimpleXMLElement($xmlstr); foreach ($xml->quotes->quote as $quote) { // Filter the symbol echo ( (string) $quote->symbol === '7UP') ? $quote->close : 'something else'; }