4

メンバーと一緒に授業があります-

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

関数を使おうとしていevaluateます-

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

stはいつexpressionですかstring

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同じ例外が発生します。前もって感謝します 。

4

2 に答える 2

2

これは、XPath 1.0が型エラーを返す数少ないケースの1つです。count()関数の引数はブール式(path / a / b = 14.94)であり、count()ではノードセットである必要があります。(XPath 2.0では、単一のブール値のカウントは1であるため、クエリは正常に実行され、間違った答えが返されます)。

于 2012-05-22T13:01:43.407 に答える
1

これを試して :

expression = "inventory/book[" +
         "count(following-sibling::book[price/text()=14.95])=0]";
于 2012-05-22T09:53:46.227 に答える