【发布时间】:2020-09-20 18:40:20
【问题描述】:
我有两个 XML 的内容基本相同,但一个标签的名称不同:
实际来源:
<ns2:Message xmlns:ns2="http://blabla.blabla.com">
<data>
<fieldabc>aaaa</fieldabc>
</data>
<asset>
<field1>50.85</field1>
<field2>Scooter</field2>
<field3>Small</field3>
</asset>
预期来源:
<ns2:Message xmlns:ns2="http://different.blabla.com">
<data>
<fieldabc>aaaa</fieldabc>
</data>
<product>
<field1>50.85</field1>
<field2>Scooter</field2>
<field3>Small</field3>
</product>
</ns2:Message>
“资产”和“产品”标签具有相同的内容、相同的字段名称。我正在使用 xmlunit:
<dependency>
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-core</artifactId>
<version>2.7.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-matchers</artifactId>
<version>2.7.0</version>
<scope>test</scope>
</dependency>
我正在尝试比较通过 DiffBuilder:
Diff diff = DiffBuilder.compare(expectedSource).withTest(actualSource)
.ignoreWhitespace()
.withNodeMatcher(new DefaultNodeMatcher(ElementSelectors.byNameAndText))
.checkForSimilar()
.build()
我收到的差异:
Expected child 'null' but was '{http://blabla.blabla.com}Message' - comparing <NULL> to <ns2:Message...> at /Message[1] (DIFFERENT)
Expected child '{http://different.blabla.com}Message' but was 'null' - comparing <ns2:Message...> at /Message[1] to <NULL> (DIFFERENT)
我需要比较这两条消息,如果它们相等而不将它们解组为 java 对象,我需要断言纯 XML。
【问题讨论】: