我有两个 xml 文件,我需要使用 xmlunit 进行比较
这些 xml 文件的内容总是相同的,除了它们的顺序
前任:
<report>
<component name = "a">
<component name = "b"/>
<component name = "c"/>
</component>
</report>
这里内部组件的顺序可能会有所不同,如下所示
<report>
<component name = "a">
<component name = "c"/>
<component name = "b"/>
</component>
</report>
当我比较这两个 xml 时,我希望 diff.similar() 为真。
到目前为止我尝试的是
try(FileInputStream fileStream1 = new FileInputStream(expXMLPath)) {
try(FileInputStream fileStream2 = new FileInputStream(genXMLPath)) {
InputSource inputSource1 = new InputSource(fileStream1);
InputSource inputSource2 = new InputSource(fileStream2);
diff = new Diff(inputSource1, inputSource2);
RegDiffListener ignorableElementsListener = new RegDiffListener(
ignorableXPathsRegex);
diff.overrideDifferenceListener(ignorableElementsListener);
diff.overrideElementQualifier(new ElementNameAndAttributeQualifier());
diff.overrideElementQualifier(new MultiLevelElementNameAndTextQualifier(1, true));
diff.overrideElementQualifier(new RecursiveElementNameAndTextQualifier());
// diff.overrideElementQualifier(new
// ElementNameAndTextQualifier());
return diff;
}
我尝试了不同的 overrideElementQualifier 选项,但没有任何效果。请让我知道解决方案。