2012-09-27 62 views
3

我想書的節點的數量:如何使用count()方法中的XPath與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表達式的結果是不是一個節點。它是:3.0的類型:java.lang.Double。

我的問題是,如果我想使用計數方法的XPath,如何節點類型轉換爲雙類型?

謝謝。

+0

節點類型?如在「書」中? – Neil

回答

3

使用numberValueOf()

公共Number numberValueOf(String xpathExpression)

numberValueOf 計算XPath表達式並返回 XPath表達式的數字值,如果XPath表達式導致數或null 如果結果不是一個數字。

參數xpathExpression - 要被評估

返回XPath表達式: XPath表達式的數字結果或空值,如果 結果不是數字。

實施例:

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

非常感謝你! –

+0

謝謝,正是我一直在尋找! –