3

本のノードの数を取得したい:

<books>
<book>1</book>
<book>2</book>
<book>3</book>
</books>


Document document = null;
try
{           
    InputStream in = new FileInputStream(new File("./src/main/java/live.xml"));
    document = reader.read(in);
}
catch (Exception e)
{
    e.printStackTrace();
}

Node node = document.selectSingleNode("count(/books/book)");

例外 org.dom4j.XPathException::XPathの評価中に例外が発生しました:XPath式の結果はノードではありません。タイプは3.0でした:java.lang.Double。

私の質問は、xpathでcountメソッドを使用したい場合、ノードタイプをダブルタイプに変換する方法ですか?

ありがとう。

4

1 に答える 1

3

numberValueOf()を使用する

public Number numberValueOf( String xpathExpression)

numberValueOf は XPath 式を評価し、XPath 式の結果が数値の場合は XPath 式の数値を返し、結果が数値でない場合は null を返します。

パラメータ: xpathExpression - 評価される XPath 式です。

戻り値: XPath 式の数値結果、または結果が数値でない場合は null。

例:

document.numberValueOf("count(/books/book)");
于 2012-09-27T12:54:47.453 に答える