簡體   English   中英

如何在 Java 中獲取屬於另一個具有特定屬性的標記的 XML 標記?

[英]How to get an XML Tag belonging to another tag with specific attribute in Java?

我想從使用我選擇的屬性指定的另一個標簽中獲取一個標簽。 例如,在這個 XML 文件中,我如何繼續打印學生 393 的標記 85?

<?xml version="1.0"?>
<class>
<student rollno="393">
  <firstname>dinkar</firstname>
  <lastname>kad</lastname>
  <nickname>dinkar</nickname>
  <marks>85</marks>
</student>
<student rollno="493">
  <firstname>Vaneet</firstname>
  <lastname>Gupta</lastname>
  <nickname>vinni</nickname>
  <marks>95</marks>
</student>
<class>

我正在用 Java 編寫並使用 JDom,如下所示

 NodeList nList = doc.getElementsByTagName("student");
     for (int temp = 0; temp < nList.getLength(); temp++) {
        Node nNode = nList.item(temp);
        System.out.println("\nCurrent Element :" + nNode.getNodeName()); 
        Element eElement = (Element) nNode;
        System.out.println("Student roll no : " + eElement.getAttribute("rollno"));
        System.out.println("First Name : "+ eElement.getElementsByTagName("firstname").item(0).getTextContent());
        System.out.println("Last Name : " + eElement.getElementsByTagName("lastname").item(0).getTextContent());
        System.out.println("Nick Name : "+ eElement.getElementsByTagName("nickname").item(0).getTextContent());
        System.out.println("Marks : " + eElement.getElementsByTagName("marks").item(0).getTextContent()); 
     }

謝謝!

您可以使用以下 XPath 表達式查找rollno屬性等於393 student元素,然后返回相應的marks子元素

//student[@rollno='393']/marks

我一般不熟悉 JDom 或 Java,但 JDom 似乎支持 XPath :

  1. 尋找 JDOM2 XPath 示例
  2. 帶有 JDOM 的 XPath:JDOM « XML « Java

暫無
暫無

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

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