Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在xpath和dom4j中使用count()方法?_Java_Xml_Parsing_Dom4j - Fatal编程技术网

Java 如何在xpath和dom4j中使用count()方法?

Java 如何在xpath和dom4j中使用count()方法?,java,xml,parsing,dom4j,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"));

我想得到书的节点数:

<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)");

1.
2.
3.
单据=空;
尝试
{           
InputStream in=新文件InputStream(新文件(“./src/main/java/live.xml”);
文档=读卡器。读取(in);
}
捕获(例外e)
{
e、 printStackTrace();
}
Node=document.selectSingleNode(“count(/books/book)”);
例外情况:
org.dom4j.XPathException
:评估XPath时发生异常:XPath表达式的结果不是节点。它是:3.0,类型为:java.lang.Double

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

谢谢。

使用

public numberValueOf(xpathExpression)

数值 计算XPath表达式并返回 XPath表达式,如果XPath表达式结果为数字或null 如果结果不是一个数字

参数:xpathExpression-是要计算的XPath表达式

返回:XPath表达式的数值结果,如果 结果不是一个数字

例如:

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

谢谢,正是我想要的!