如何通过跳过几个节点来比较两个 xml?
How to compare two xmls by skipping few nodes?
我有两个字符串格式的 xml。需要通过跳过几个节点来比较它们。在结果中只需要节点的差异和对应的值。
假设我有以下两个 xml:
留言-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.
使用了以下代码但没有用:
我认为您仍然可以将 XMLUnit 用于该作业,但不能使用默认设置。相反,您可能想要实现忽略某些属性或节点的自定义 DifferenceEvaluator
。
有关详细信息和示例,请参阅 XMLUnit DifferenceEvaluator。
使用 XMLUnit 2.x 您可以使用 NodeFilter
并抑制要跳过的节点。像
DiffBuilder b = DiffBuilder.compare(some-input)
.withTest(some-test)
.withNodeFilter(n -> !":PREV".equals(n.getTextContent()))
...
我有两个字符串格式的 xml。需要通过跳过几个节点来比较它们。在结果中只需要节点的差异和对应的值。
假设我有以下两个 xml:
留言-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.
使用了以下代码但没有用:
我认为您仍然可以将 XMLUnit 用于该作业,但不能使用默认设置。相反,您可能想要实现忽略某些属性或节点的自定义 DifferenceEvaluator
。
有关详细信息和示例,请参阅 XMLUnit DifferenceEvaluator。
使用 XMLUnit 2.x 您可以使用 NodeFilter
并抑制要跳过的节点。像
DiffBuilder b = DiffBuilder.compare(some-input)
.withTest(some-test)
.withNodeFilter(n -> !":PREV".equals(n.getTextContent()))
...