【发布时间】:2021-08-12 09:51:39
【问题描述】:
我有一个 XML 格式
<Response>
<Result>
<Status>SUCCESS</Status>
<Message>Some message 1</Message>
</Result>
<Result>
<Status>FAIL</Status>
<Message>Some message 2</Message>
</Result>
</Response>
我需要比较一下
<Response>
<Result>
<Status>FAIL</Status>
<Message>Some message 2</Message>
</Result>
<Result>
<Status>SUCCESS</Status>
<Message>Some message 1</Message>
</Result>
</Response>
它们相似,但不相同。我尝试使用 XMLunit 来比较这些,但我不断收到你不相似的错误
我的代码:
assertThat(result, isSimilarTo(control).withNodeMatchers(new DefaultNodeMatcher(ElementsSelector.byName)))
这似乎忽略了<Result> 中的元素顺序,但并未忽略<Result> 元素本身的顺序。
如何实现相似性检查?
【问题讨论】:
-
Robin La Fontaine 上周在 Balisage 2021 上就该主题发表了一篇论文:请参阅 balisage.net/Proceedings/vol26/html/LaFontaine01/… 他的公司 DeltaXML 或许可以提供一些东西。文档比较是一个复杂的话题。