gpt4 book ai didi

java - 当同级元素具有相同名称但不同属性时,如何使用 Java 和 Xerces NodeIterator 获取同级元素

转载 作者:行者123 更新时间:2023-11-30 08:10:51 25 4
gpt4 key购买 nike

我正在使用 Java 并尝试解析 XML 文档。我有一个文档,其中有两个同级标签,它们具有相同的元素名称,如下所示:

<directory>
... <!-- other data and elements -->

<application id="ID1">
</application>

... <!-- other elements -->

<application id="ID2">
</application>
... <!-- other element and data -->
</directory>

我正在使用 Xerces 来解析 XML 和 NodeIterator来处理它。我想获取第二个元素<application>其属性 id="ID2"来自上面的示例 XML。使用方法时getElementsByTagName("tagname") ,返回的元素始终是属性 id="ID1" 的第一个元素.

如何获取具有相同名称和相似属性但属性值不同的第二个元素?

最佳答案

getElementsByTagName("application") 返回一个 NodeList。要获取第二个元素,您可以使用

NodeList applications = getElementsByTagName("application");
Node second = applications.item(1);

如果您想确定,则需要迭代applications,直到找到id == "ID2"的节点:

for( int i=0; i<applications.length(); i++) {
Node node = applications.item(i);
if(!(node instanceof Element)) continue;
Element e = (Element) node;
String id = e.getAttributeNode("id").getValue();
if("ID2".equals(id)) {
... do something with the node ...
}
}

注意:如果可以的话,尝试切换到JDOM2 。它有一个更好的 API,特别是当您使用 Java 6 或更好的版本时。

关于java - 当同级元素具有相同名称但不同属性时,如何使用 Java 和 Xerces NodeIterator 获取同级元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30399084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com