尝试获得这两个类似的XML (想忽略xmlns)和不同的元素序列,但不能为我正确工作。如果删除xmlns,doc是simmilr。我使用的是XMlUnit 1.5
String s1 = "<root xmlns=\"http:example.com\">"
+"<Date/>"
+"<Time/>"
+"</root>";
String s2 = "<root>"
+"<Time/>"
+"<Date/>"
+"</root>";
myDiff = XMLUnit.compareXML(s1,s2);发布于 2015-02-03 19:15:01
你需要做两件事:
DifferenceListener,它降低了差异的等级Diff使用的默认Diff是ElementNameQualifier,它只比较具有相同本地名称和命名空间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差异的级别。
https://stackoverflow.com/questions/26524286
复制相似问题