如何在xpath中使用dom4j的cou​​nt()方法?

时间:2012-09-27 09:58:25

标签: java xml parsing dom4j

我想得到书的节点数:

<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:evaluting XPath发生异常:XPath表达式的结果不是Node。它是:3.0的类型:java.lang.Double。

我的问题是,如果我想在xpath中使用count方法,如何将Node类型转换为Double类型?

感谢。

1 个答案:

答案 0 :(得分:3)

使用numberValueOf()

  

public Number numberValueOf(String xpathExpression)

     

numberValueOf   计算XPath表达式并返回该数值   XPath表达式,如果XPath表达式导致数字,或为null   如果结果不是数字。

     

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

     

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

示例:

document.numberValueOf("count(/books/book)");