【问题标题】:Iterate through 2 Java NodeList elements遍历 2 个 Java NodeList 元素
【发布时间】:2017-02-08 09:52:40
【问题描述】:

我知道这比看起来简单,但我想不通......

如何遍历两个 Java NodeList 集合以查看是否匹配。

EG:

NodeList NODE1 = doc1.getElementsByTagName("tag1");

NodeList NODE2 = doc2.getElementsByTagName("tag2");

我想遍历NODE1NODE2 看看这两个标签中是否有任何匹配的数据。我有 Java 基础知识,而且我是 XML 方面的新手,因此非常感谢任何帮助。

【问题讨论】:

  • 我尝试转换为字符串并使用 if 语句,检查是否有任何匹配值。我认为我的主要问题是试图找出 for 循环的正确结构来遍历它们。

标签: java xml dom


【解决方案1】:

尝试以下内容:

public Collection<Node> getMatchingNodes(NodeList n1, NodeList n2, Class<? extends Node> typeToMatch){
    Collection<Node> n1Nodes = getNodes(n1, typeToMatch);
    Collection<Node> n2Nodes = getNodes(n2, typeToMatch);
    n1Nodes.retainAll(n2Nodes);
    return n1Nodes;
}

private Collection<Node> getNodes(NodeList nodeList, Class<? extends Node> typeToMatch){
    Collection<Node> n1Nodes = new ArrayList<>();
    for(int i = 0; i < nodeList.getLength(); i++){
        if(nodeList.item(1).getClass() == typeToMatch){
            n1Nodes.add(nodeList.item(i));
        }
    }
    return n1Nodes;
}

请注意,这只比较相同类型的节点,例如文字。

【讨论】:

    猜你喜欢
    • 2020-04-05
    • 2013-01-12
    • 1970-01-01
    • 2019-11-21
    • 1970-01-01
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    相关资源
    最近更新 更多