2012-05-22 61 views
4

我有成員類 -Xpath的評價計數 「[]」

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

我嘗試使用evaluate功能 -

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

expressionstring ST

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我也會得到相同的異常。提前致謝 。

回答

1

嘗試這種情況:

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

這是爲數不多的情形之一,其中的XPath 1.0返回一個錯誤類型:參數到計數()函數是一個布爾表達式(路徑/ A/B = 14.94) ,count()要求它是一個節點集。 (在XPath 2.0中,單個布爾值的計數爲1,所以您的查詢將成功運行,並給出錯誤的答案)。