【问题标题】:How to get an XML Tag belonging to another tag with specific attribute in Java?如何在Java中获取属于另一个具有特定属性的标签的XML标签?
【发布时间】:2016-02-24 14:43:20
【问题描述】:

我想从另一个用我选择的属性指定的标签中获取一个标签。例如,在这个 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()); 
     }

谢谢!

【问题讨论】:

    标签: java xml parsing


    【解决方案1】:

    您可以使用以下 XPath 表达式找到具有rollno 属性等于393student 元素,然后返回对应的marks 子元素

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

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

    1. Looking for JDOM2 XPath examples
    2. XPath with JDOM : JDOM « XML « Java

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-19
      • 1970-01-01
      • 2020-05-02
      • 1970-01-01
      • 1970-01-01
      • 2021-05-24
      相关资源
      最近更新 更多