2011-06-09 156 views
0

我有這樣一個XML文件:如何使用Java獲取XML中的最後一個屬性?

<?xml version="1.0" encoding="UTF-8" standalone="no" ?> 
<user> 
    <account phone ="2000">   
    </account> 
</user> 
<user> 
    <account phone ="2001">   
    </account> 
</user> 
<user> 
    <account phone ="2002">   
    </account> 
</user> 
<user> 
    <account phone ="2003">   
    </account> 
</user> 

從Java代碼,我想獲得最新的手機屬性。我沒有使用attr.getValue()的條件,因爲此數據總是更新,所以我想獲取電話屬性的最新值。

回答

4

您可以使用以下XPath來獲得最後一個用戶的電話屬性:

//user[last()]/account/@phone 

這會給你你phone ="2003"

這是一個Java代碼片段:

import javax.xml.parsers.DocumentBuilderFactory; 
import javax.xml.xpath.XPath; 
import javax.xml.xpath.XPathFactory; 
import org.w3c.dom.Document; 

XPath xpath = XPathFactory.newInstance().newXPath(); 
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse("input.xml"); 
String phone = xpath.evaluate("//user[last()]/account/@phone", doc); 
System.out.println(phone); 
0

假設你解析XML轉換爲org.w3c.dom.Document然後下面應該工作:

Document doc = parse(xml); 

ItemList accounts= doc.getElementsByTagName("account"); 
Element lastAccount = accounts.item(accounts.getLength()-1);  
String phone = lastAccount.getAttribute("phone"); 
相關問題