如何在迭代Xml中的节点时检查当前节点?

时间:2012-12-24 13:11:29

标签: java xml

我必须根据xml中的值加载组合框中的值。

当我要加载组合框时,方法

public static List<String> getVariableNames(Element thisElement, String type) {

    if (thisElement == null) {
        return new ArrayList<String>();
    }
    List<String> variableNames = new ArrayList<String>();
    List<Element> variableElements = thisElement.elements();
    for (Element nextElement : variableElements) {
        if (thisElement.equals(nextElement)) {
            break;
        } else if (isVariable(nextElement)) {
            String iteratedType = nextElement.attributeValue("TYPE");
            if (type.equals(iteratedType)) {
                variableNames.add(nextElement.attributeValue("VARIABLENAME"));
            }
        }
    }
    return variableNames;
}

被召唤。

但这不起作用。

此实施中是否有任何问题?

1 个答案:

答案 0 :(得分:0)

根据你的评论,thisElement.equals(nextElement)总是返回false。

可能的原因:

thisElementnextElement可能是对不同对象的引用(尽管具有相同的内容),.equals()的默认实现会比较在这种情况下可能不同的对象的地址。

请确保Element类实际实现了equals()方法并比较了必需的字段,以便它对于相同/相同的对象返回true。