java - Xpath 计算 "[ ]"中的计数

标签 java xml xpath evaluate

我和成员们一起上课-

private Document myDoc;
XPath xpath = XPathFactory.newInstance().newXPath(); 

我尝试使用evaluate 函数 -

Object result = xpath.evaluate(expression, this.myDoc,
                XPathConstants.NODESET);

expression 是一个 string s.t

expression = "inventory/book[" +
                "count(following-sibling::book/price/text()=14.95)=0 ]"  ;

我得到以下异常 -

java.lang.RuntimeException: Can not convert #BOOLEAN to a NodeList!

即使我将 XPathConstants.NODESET 更改为 XPathConstants.NUMBER,我也会遇到同样的异常。提前致谢。

最佳答案

这是 XPath 1.0 返回类型错误的少数情况之一:count() 函数的参数是一个 boolean 表达式 (path/a/b = 14.94),而 count() 要求它是一个节点-放。 (在 XPath 2.0 中,单个 boolean 值的计数为 1,因此您的查询将成功运行,并给出错误答案)。

关于java - Xpath 计算 "[ ]"中的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10699459/

相关文章:

java - Android 中的 XPath 错误

java - 如何从数组列表中过滤字符串的一部分

java - Java 中 TODO 的替代品

javascript - 格式 ###.## 的非负和非零正则表达式

python - 无法使用 ElementTree 修改 XML 正文中 CDATA 内的内容

php - 流量控制取决于 xml 元素的值

java - 没有 web.xml 的 Servlet 3.0 错误页面 javaconfig

c++ - PugiXML 没有错误的空文档

c# - XDocument 更改所有属性名称

xpath - Xquery 提取 html 中的文本