XML比较

xiaoxiao2021-02-28  71

1.工具:Xmlunit 2.实现

//待比较文本、目标文本 public static List<Difference> compare(Document source, Document target) throws Exception { Diff diff = new Diff(source, target); XMLUnit.setIgnoreAttributeOrder(true);//忽略属性位置 XMLUnit.setIgnoreComments(true);//忽略注解 XMLUnit.setIgnoreDiffBetweenTextAndCDATA(true); XMLUnit.setIgnoreWhitespace(true);//忽略空白 diff.overrideDifferenceListener(new IgnoreTextAndAttributeValuesDifferenceListener());//忽略文本值和属性值 diff.overrideElementQualifier(new ElementNameAttrAndChildQualifier());//覆盖节点比较方式 if (diff.similar()) return Lists.newArrayList(); DetailedDiff dd = new DetailedDiff(diff); return dd.getAllDifferences();//将不同重新封装返回 }

a、Difference的类型用ID字段区分,DifferenceConstants罗列了所有不同类别。getControlNodeDetail和getTestNodeDetail可分别得到不同节点详情。 b、ElementNameAttrAndChildQualifier为自定义ElementNameAndAttributeQualifier继承扩展类,然后覆盖public boolean qualifyForComparison(Element control, Element test)方法,在里面写如何判断两个节点相同与否。

转载请注明原文地址: https://www.6miu.com/read-51977.html

最新回复(0)