java - 在 Java 应用程序中执行 XQuery 中的命令 block

标签 java xpath xquery

我正在使用带有 Java 的 xHive 数据库。在我的 Java 应用程序中,我需要像这样多次调用相同的 xQuery 函数。

libDev.executeXQuery("import module namespace download = 'http://xquery.myxq.com.br/download' at 'http://localhost:8080/WebUpdate/xq/download.xq';
download:updateDeviceData('pc', '0040-A72D-4025')");

libDev.executeXQuery("import module namespace download = 'http://xquery.myxq.com.br/download' at 'http://localhost:8080/WebUpdate/xq/download.xq';
download:updateDeviceData('pc', '0040-A72D-4026')");

我想制作一个像这样的命令 block 并只执行一次。 在xquery中有什么方法可以做到这一点吗?

libDev.executeXQuery("import module namespace download = 'http://xquery.myxq.com.br/download' at 'http://localhost:8080/WebUpdate/xq/download.xq';
download:updateDeviceData('pc', '0040-A72D-4025')
download:updateDeviceData('pc', '0040-A72D-4026')";

当我尝试运行此 block 时,出现此错误:

com.xhive.error.xquery.XhiveXQueryParseException: query:3:1:XQUERY_PARSE_ERROR:

输入“下载”(NCName)(XPST0003)时没有可行的替代方案

最佳答案

您需要将表达式包装在序列构造函数中,即 (expr1, expr2)

libDev.executeXQuery("import module namespace download = 'http://xquery.myxq.com.br/download' at 'http://localhost:8080/WebUpdate/xq/download.xq';
(
download:updateDeviceData('pc', '0040-A72D-4025'),
download:updateDeviceData('pc', '0040-A72D-4026')
)";

关于java - 在 Java 应用程序中执行 XQuery 中的命令 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31413860/

相关文章:

javascript - 在 CasperJS 中使用 __utils__.getElementsByXPath 查找元素

c# - 选择子节点,但使用 XPath 忽略非元素?

amazon-s3 - xquery api将数据从marklogic上传到亚马逊s3

java - 从 Java ObjectInputStream 读取时出错

java - 使用 Java 创建一副 54 张牌(包括 clown 牌)的好方法是什么

java - 基础机器学习

java - ServerWorker 类型的方法 start() 未定义..... (java Runnable)

java - 在 Selenium Java 中查找元素的 Xpath

Xquery FLWOR 与 group by

json - 如何在 MarkLogic 的 XQuery 中以编程方式创建 JSON?