gpt4 book ai didi

java - XMLUnit - 比较时忽略 'id' 属性

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:19:06 25 4
gpt4 key购买 nike

我目前正在使用 XMLUnit,我想知道是否有办法将其配置为我要比较的标签的 id 属性。

预先感谢您的帮助。

最佳答案

解决方案非常简单。您可以配置 DifferenceEngine 来处理 ATTR_VALUE 差异。编写实现 DifferenceListener 的自定义差异监听器类:

class IgnoreIDsDifferenceListener implements DifferenceListener {
private static final int[] IGNORE_VALUES = new int[] {
DifferenceConstants.ATTR_VALUE.getId(),
};

private boolean isIgnoredDifference(Difference difference) {
int differenceId = difference.getId();
for (int i=0; i < IGNORE_VALUES.length; ++i) {
if (differenceId == IGNORE_VALUES[i]) {
return true;
}
}
return false;
}

public int differenceFound(Difference difference) {
if (isIgnoredDifference(difference)) {
return RETURN_IGNORE_DIFFERENCE_NODES_IDENTICAL;
} else {
return RETURN_ACCEPT_DIFFERENCE;
}
}

public void skippedComparison(Node control, Node test) {
}
}

这里需要的是检查属性名是否为“id”。标准的 Java DOM 功能可能会有所帮助。但我更喜欢通过正则表达式的方式来做到这一点:

String controlNode = difference.getControlNodeDetail().getNode().toString();
controlNode .matches("^id=\".*\"")

附言另请参阅:http://xmlunit.sourceforge.net/api/org/custommonkey/xmlunit/Difference.html

关于java - XMLUnit - 比较时忽略 'id' 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5249031/

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