пакет груши: http://www.pecl.php.net/package/Zorba (ссылка на ошибку 404)
НОВИНКА (2011 г.): http://www.zorba-xquery.com/html/entry/2011/12/27/PHP_Meets_XQuery
документация zorba: http: //www.zorba-xquery. com /
zorba docs предоставляет простой пример:
//Include for the Object-Oriented API
require ‘zorba_api.php’;
//Initialization of Zorba store
$store = InMemoryStore::getInstance();
//Initialization of Zorba
$zorba = Zorba::getInstance($store);
$xquery = <<< EOT
let $message := ‘Hello World!’
return
<results>
<message>{$message}</message>
</results>
EOT;
//Compile the query
$lQuery = $zorba->compileQuery($xquery);
//Run the query…
echo $lQuery->execute();
//…and destroy it
$lQuery->destroy();
//Shutdown of Zorba
$zorba->shutdown();
//Shutdown of Zorba store
InMemoryStore::shutdown($store);
PHP не имеет собственных или распространенных анализаторов XML, поддерживающих XQuery (если я ошибаюсь, дайте мне знать). Однако у него есть два довольно стандартных расширения, которые обрабатывают запросы XPath.
Лично я считаю, что simplexml
лучше из двух. Вы могли бы просто использовать:
$xml = new simplexml($some_xml_string);
$xpath_results = $xml -> Xpath("//a/b");
И затем просмотреть результаты.
Расширенный класс DOM также поддерживает запросы Xpath. Насколько я понимаю, единственным реальным преимуществом использования DOM является то, что результаты можно изменять или удалять прямо из более крупного XML-объекта.
Удачи.
Вы смотрели http://www.pecl.php.net/package/Zorba ?
{ {1}}его также можно использовать с DOMDocument и DOMXPath
$doc = new DOMDocument();
$doc->load('http://www.example.com/some.xml');
$xpd = new DOMXPath($doc);
false&&$node = new DOMElement();//this is for my IDE to have intellysense
$result = $xpd->query('//a/b');
foreach($result as $node){
echo $node->nodeName.'<br />';
}