【问题标题】:XMLUNIT How do I ignore multiple elements when comparing XML?XMLUNIT 在比较 XML 时如何忽略多个元素?
【发布时间】:2018-02-26 20:06:25
【问题描述】:

我能够使用 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();

【问题讨论】:

    标签: java xmlunit-2


    【解决方案1】:

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

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

    这将匹配所有不是metadatacomment 的节点。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】: