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 方法,如何将 Node 类型转换为 Double 类型?

谢谢。

4

1 回答 1

3

使用numberValueOf()

公众numberValueOf( String xpathExpression)

numberValueOf 计算 XPath 表达式,如果 XPath 表达式的结果是数字,则返回 XPath 表达式的数值;如果结果不是数字,则返回 null。

参数xpathExpression - 是要评估的 XPath 表达式

返回: XPath 表达式的数字结果;如果结果不是数字,则返回 null。

例子:

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