1

我能够使用 XMLUNIT 2.5 DiffBuilder 比较 2 个 xml 文件。我想使用 withNodeFilter 忽略某些元素。但是 withNodeFilter 只接受 1 个元素。有没有办法忽略更多的一个元素进行比较。

DiffBuilder.compare(DocB)
.withTest(docA)
.withNodeFilter(node -> !node.getNodeName().equals("metadata")) // need to include more element tags to ignore
.build();
4

2 回答 2

3

您可以只使用逻辑运算符,例如,

.withNodeFilter(node -> !(node.getNodeName().equals("metadata") ||
                          node.getNodeName().equals("comment"))

这将匹配所有不是metadataor的节点comment

于 2018-02-26T20:37:45.357 回答
0

如果有一个或两个节点,我认为TheZeus121的解决方案看起来不错,但是如果您想在 xml 比较中添加超过 10 个节点以忽略,那么我认为这种使用 '||' 继续添加节点的传统方式 或'&&'不是正确的方法。所以,只是我已经针对这种方法进行了修改,请查看此链接

https://stackoverflow.com/a/68099435/13451711

于 2021-06-23T14:39:35.190 回答