Выполнить XQuery с помощью PHP

Как выполнить XQuery в PHP ? Можете ли вы привести мне пример?

Спасибо.

    пакет груши: http://www.pecl.php.net/package/Zorba (ссылка 404)

    NEW (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-объекта.

    Удачи.

    Используйте BaseX. Его стабильная, масштабируемая и быстрая! (но вам нужен сервер для запуска)

    Клиенты BaseX

     include("BaseXClient.php"); $session = new Session("localhost", 1984, "admin", "admin"); print $session->execute("xquery 1 to 10"); $session->close(); в include("BaseXClient.php"); $session = new Session("localhost", 1984, "admin", "admin"); print $session->execute("xquery 1 to 10"); $session->close(); 

    Эта страница находится в http://phpxmlclasses.sourceforge.net/, у которой есть класс XQuery Lite:

    PHP-реализация языка Xquery Lite 1.0, язык для запроса XML-документов на основе Xquery 1.0. Этот класс основан на расширении DOM и позволяет выполнять запросы Xquery Lite для XML-документов в файлах, php-строках или комбинациях.

    Я никогда не использовал его и не знаю, как он работает.

    его также возможно с 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 />'; } 

    Следующая ссылка должна быть полезна: http://dl.dropbox.com/u/1487285/php/php.html

     <?php require_once 'Zorba/XQueryProcessor.php'; $xquery = new XQueryProcessor(); $query = <<<'XQ' declare variable $world external; <h1>Hello {$world}</h1> XQ; $xquery->importQuery($query); $xquery->setVariable('world', 'World!'); echo $xquery->execute(); ?> 

    Для сценариев совместного размещения я предлагаю использовать что-то вроде 28msec (http://www.28msec.com), которое позволяет вам создавать службы RESTful на основе процессора Zorba XQuery. С PHP вы можете подключиться к 28 мс через REST.

    Вы посмотрели http://www.pecl.php.net/package/Zorba ?