Java Xpath计算“中的计数”;[……”是;

Java Xpath计算“中的计数”;[……”是;,java,xml,xpath,evaluate,Java,Xml,Xpath,Evaluate,我和会员们一起上课- private Document myDoc; XPath xpath = XPathFactory.newInstance().newXPath(); 我尝试使用评估函数- Object result = xpath.evaluate(expression, this.myDoc, XPathConstants.NODESET); 当表达式是字符串时s.t expression = "inventory/book[" +

我和会员们一起上课-

private Document myDoc;
XPath xpath = XPathFactory.newInstance().newXPath(); 
我尝试使用
评估
函数-

Object result = xpath.evaluate(expression, this.myDoc,
                XPathConstants.NODESET);
表达式
字符串时
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
时,也会出现相同的异常。提前感谢。

试试这个:

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

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