当所有标签相同时,如何使用Java从XML文件中读取值?

时间:2016-06-27 12:03:33

标签: java xml

我的XML看起来像下面的

<var id="attr1">
      <attr1>
         <var id="key1">value1</var>
         <var id="key2">value2</var>
         <var id="key3">value3</var>
      </attr1>
</var>

<var id="attr2">
      <attr2>
         <var id="key1">value4</var>
         <var id="key2">value5</var>
         <var id="key3">value6</var>
         <var id="key4">value7</var>
      </attr2>
</var>

我试图从上面的xml中获取值(这将是唯一的)。键名可以是相同的,标签名称也是相同的(在这种情况下它是“var”),这使得它在获取值时具有挑战性。属性名称也是唯一的。如果我使用以下代码

NodeList nList = doc.getElementsByTagName("var");               
for (int temp = 0; temp < nList.getLength(); temp++) {
    Node nNode = nList.item(temp);
    System.out.println("Current Element :" + nNode.getNodeName());
    if (nNode.getNodeType() == Node.ELEMENT_NODE) {
        Element eElement = (Element) nNode;
        System.out.println("Parent id : "
                        + eElement.getAttribute("id"));
    }
}

如果我执行上述方法,我将获得所有密钥。有没有办法获得特定密钥的价值..?如何实际遍历以获得值(比如value1)..?

1 个答案:

答案 0 :(得分:0)

您可以通过调用eElement.getTextContent()方法获取元素文本内容。

这是Node接口javadoc的link(Element扩展)。