首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XMLUNIT忽略xmlns?

XMLUNIT忽略xmlns?
EN

Stack Overflow用户
提问于 2014-10-23 08:40:53
回答 1查看 3.2K关注 0票数 2

尝试获得这两个类似的XML (想忽略xmlns)和不同的元素序列,但不能为我正确工作。如果删除xmlns,doc是simmilr。我使用的是XMlUnit 1.5

代码语言:javascript
复制
String s1 = "<root xmlns=\"http:example.com\">"
                        +"<Date/>"
                        +"<Time/>"
                     +"</root>";

String s2 = "<root>"
                      +"<Time/>"
                      +"<Date/>"
                   +"</root>";
myDiff = XMLUnit.compareXML(s1,s2);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-03 19:15:01

你需要做两件事:

  • 为了忽略不同的命名空间,您需要提供一个DifferenceListener,它降低了差异的等级
  • Diff使用的默认DiffElementNameQualifier,它只比较具有相同本地名称和命名空间URI的元素。你也需要覆盖这个。 Diff xmlDiff =新Diff(s1,s2);xmlDiff.overrideElementQualifier(新ElementNameQualifier() {@重写受保护的布尔值equalsNamespace(Node control,Node test) {返回true;});XmlDiff.overrideDifferenceListener(新的DifferenceListener() { @Override int differenceFound(Difference diff) ){ if (diff.getId() == DifferenceConstants.NAMESPACE_URI_ID) {new RETURN_IGNORE_DIFFERENCE_NODES_IDENTICAL;}返回RETURN_ACCEPT_DIFFERENCE;}@覆盖公共无效skippedComparison(Node arg0,Node arg1) {}};

创建“相似”结果。为了获得“相同”的结果,您还需要降低CHILD_NODELIST_SEQUENCE_ID差异的级别。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26524286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档