簡體   English   中英

如何使用 Java 獲取 XML 中的最后一個屬性?

[英]How to get the last attribute in XML with 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()的條件,因為這個數據總是更新的,所以我想獲取電話屬性的最新值。

您可以使用以下 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);

假設您將 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");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM