使用 PHP 执行 XQuery
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(8)
煮酒 2024-08-27 15:08:43
梨包: 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 文档提供了一个简单的示例:
//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);
孤独患者 2024-08-27 15:08:43
也可以与 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 />';
}
蘸点软妹酱 2024-08-27 15:08:43
http://phpxmlclasses.sourceforge.net/ 上有一个页面,其中包含一个 XQuery Lite 类:
Xquery Lite 1.0 语言的 PHP 实现,一种基于 Xquery 1.0 查询 XML 文档的语言 该类基于 DOM 扩展,允许对文件、php 字符串或组合中的 XML 文档执行 Xquery Lite 查询。
我从未使用过它,也不知道它的性能如何。
内心荒芜 2024-08-27 15:08:43
以下链接应该很有用: 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();
?>
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
PHP 没有任何支持 XQuery 的本机或通用 XML 解析器(如果我错了,请有人告诉我)。然而,它确实有两个非常标准的扩展来处理 XPath 查询。
我个人认为
simplexml
是两者中更好的一个。您只需使用:然后循环结果。
广泛的 DOM 类也支持 Xpath 查询。据我所知,使用 DOM 的唯一真正优点是可以直接从较大的 XML 对象中修改或删除结果。
祝你好运。
PHP does not have any native or common XML parsers that support XQuery (If I'm wrong, someone let me know). It does however have two pretty standard extensions that handle XPath queries.
I personally think
simplexml
is the better of the two. You would simply use:And then loop through the results.
The extensive DOM class supports Xpath queries as well. The only real advantage, as far as I see it, to using DOM is that the results can be modified or deleted straight out of the larger XML object.
Good luck.