XMLUNIT 比较XML时如何忽略多个元素?
XMLUNIT How do I ignore multiple elements when comparing XML?
我可以使用 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();
您可以只使用逻辑运算符,例如,
.withNodeFilter(node -> !(node.getNodeName().equals("metadata") ||
node.getNodeName().equals("comment"))
这将匹配所有不是 metadata
或 comment
的节点。
我觉得TheZeus121's solution looks good if there are one or two nodes, but if you want to add more than 10 nodes to ignore in xml comparison, then I think this tradition way of keep on adding nodes using '||'或 '&&' 不是正确的方法。所以,我只是针对这种方法进行了修改,请查看此 link
我可以使用 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();
您可以只使用逻辑运算符,例如,
.withNodeFilter(node -> !(node.getNodeName().equals("metadata") ||
node.getNodeName().equals("comment"))
这将匹配所有不是 metadata
或 comment
的节点。
我觉得TheZeus121's solution looks good if there are one or two nodes, but if you want to add more than 10 nodes to ignore in xml comparison, then I think this tradition way of keep on adding nodes using '||'或 '&&' 不是正确的方法。所以,我只是针对这种方法进行了修改,请查看此 link