如何解决XmlUnit - 如何忽略命名空间前缀并比较 2 个 xml 文件?
我有两个 xml 文件。第一个包含命名空间前缀,第二个不包含。因此,当我断言它们时,我想忽略这些前缀并检查是否相等。
@Test
public void test1(){
String control = "<prefix1:element xmlns:prefix1=\"namespace\" >Some text</prefix1:element>";
String test = "<element xlmns=\"namespace\">Some text</element>";
XmlAssert.assertthat(controlElement).and(testElement)
.ignoreChildNodesOrder()
.ignoreComments()
.ignoreWhitespace()
.withNodeMatcher(new DefaultNodeMatcher((ElementSelector) (control,test)->
{
return control!=null && test !=null && Objects.equals(control.getLocalName(),test.getLocalName());
}
))
.withDifferenceEvaluator((comparison,outcome)->{
System.out.println(comparison);
System.out.println(outcome);
if (outcome == ComparisonResult.EQUAL){
return outcome;
}
if (comparison.getType() == ComparisonType.NAMESPACE_URI
|| comparison.getType()==ComparisonType.NAMESPACE_PREFIX){
System.out.println("aaaa");
return ComparisonResult.SIMILAR;
}
return outcome;
})
.areSimilar();
}
因此,此测试未通过,我收到以下消息:
java.lang.AssertionError:
Expecting:
<<prefix1:element xmlns:prefix1="namespace">Some text</prefix1:element>>
to be equal to:
<<element xlmns="namespace">Some text</element>>
but was not.
我需要的是 - 这个测试用例应该通过,因为所有的节点和值都是相等的。基本上,一种忽略前缀的方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。