首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在XPath查询中设置变量

如何在XPath查询中设置变量
EN

Stack Overflow用户
提问于 2020-08-04 19:06:16
回答 1查看 117关注 0票数 0

以下代码返回4个节点(使用southwind.xmlsouthwind.xsd):

代码语言:javascript
复制
XPathExecutable exec = datasource.getxPathCompiler().compile("/windward-studios/Employees/Employee[@EmployeeID < 5]");
XPathSelector selector = exec.load();
selector.setContextItem(datasource.getXmlRootNode());
XdmValue nodeSet = selector.evaluate();

但是,以下内容返回0节点:

代码语言:javascript
复制
datasource.getxPathCompiler().declareVariable(new QName("p1"));
XPathExecutable exec = datasource.getxPathCompiler().compile("/windward-studios/Employees/Employee[@EmployeeID < p1]");
XPathSelector selector = exec.load();
selector.setContextItem(datasource.getXmlRootNode());
selector.setVariable(new QName("p1"), new XdmAtomicValue(5));
XdmValue nodeSet = selector.evaluate();

我做错了什么?

更新:看起来它需要一个$标志:

代码语言:javascript
复制
compile("/windward-studios/Employees/Employee[@EmployeeID < $p1]");

对吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-04 23:25:14

XPath和XSLT中的变量引用从$开始,因此$p1是XPath中引用名为p1的变量的正确方式。您以前的尝试p1将选择一个名为p1的元素节点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63253546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档