我有两个字符串格式的xmls。需要通过跳过几个节点来比较它们。在结果中,只需要节点和相应值的差异。
假设我有以下两个xmls:
消息-1
<block4>
<tag>
<name>35B</name>
<value>/GB/B0W1VM9</value>
</tag>
</block4>
讯息 - 2
<block4>
<tag>
<name>35B</name>
<value>/US/999999999
NOT AVAILABLE AT PRESENT</value>
</tag>
</block4>
我正在使用XMLUnit,但我希望找到几个块的差异,并希望跳过几个具有特定值的节点。就像<tag>
中的值一样::应该跳过PREV。
注意:最后想要在excel中打印结果。
使用以下代码但没有用:https://stackoverflow.com/a/16471601/3493471
答案 0 :(得分:1)
我认为您仍然可以将XMLUnit用于该作业,但您无法使用默认设置。相反,您可能希望实现忽略某些属性或节点的自定义DifferenceEvaluator
。
有关详细信息和示例,请参阅XMLUnit DifferenceEvaluator。
答案 1 :(得分:0)
使用XMLUnit 2.x,您可以使用NodeFilter
并禁止要跳过的节点。像
DiffBuilder b = DiffBuilder.compare(some-input)
.withTest(some-test)
.withNodeFilter(n -> !":PREV".equals(n.getTextContent()))
...