用PHP执行XQuery

abe*_*ier 11 php xquery

如何在PHP中执行XQuery?能给我举个例子?

谢谢.

net*_*ate 6

梨包: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);
Run Code Online (Sandbox Code Playgroud)


Ant*_*ony 5

PHP没有任何支持XQuery的本机或通用XML解析器(如果我错了,有人让我知道).但它有两个非常标准的扩展来处理XPath查询.

我个人认为simplexml这两者更好.你只需使用:

$xml = new simplexml($some_xml_string);
$xpath_results = $xml -> Xpath("//a/b");
Run Code Online (Sandbox Code Playgroud)

然后循环结果.

广泛的DOM类也支持Xpath查询.就我看来,使用DOM的唯一真正优势是可以直接从较大的XML对象中修改或删除结果.

祝好运.

  • XPath与XQuery不同. (12认同)
  • 我知道,对吧?这可能就是为什么我说的第一件事就是PHP没有对XQUERY的原生支持.我想下次,我不应该添加有用的替代解决方案. (5认同)
  • 很公平.基本上指向XPath实际上只是为了让他们免去PHP和XML所带来的旅程,在那里我阅读了一些XML标准技术,感到兴奋,发现它在PHP中支持*,甚至没有重新编译.和我一起使用XQuery,XSLT,SOAP/WSDL,XPath,我相信它会再次发生.不讨厌PHP,只是说XML会破坏心灵,所有这些都是很大的承诺. (2认同)