2011-06-09 71 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"); 
相关问题