XMLUnit - 比较两个忽略子顺序的XML

时间:2010-10-15 03:34:40

标签: java compare xmlunit

我试图看看是否可以使用XMLUnit来比较以下两种不同的XML。 我使用Diff类来比较以下两个XML并检查类似的返回false。

XML One
<Required>
   <Question desc="Are you single?">
      <Answers>
        <Answer value="Yes"/>
        <Answer value="No"/>
      </Answers>
   </Question>
</Required>

XML Two
<Required>
   <Question desc="Are you single?">
      <Answers>
        <Answer value="No"/> ''Order is reversed in XML two
        <Answer value="Yes"/>
      </Answers>
   </Question>
</Required>

这是我的JAVA代码:

Diff xmlDiff;
try {
    xmlDiff = new Diff(xmlOne, xmlTwo);
    xmlDiff.overrideElementQualifier(new RecursiveElementNameAndTextQualifier());
} catch (Exception e) { }
boolean isEqual = xmlDiff.similar()

1 个答案:

答案 0 :(得分:2)

xmlDiff.similar 应该做的伎俩,但我经历过这并不总是有效。 我的解决方法是在比较之前对元素进行排序。

请注意,在您的应用程序中构建定义良好的排序通常是一个好主意,因为这样可以更轻松地进行自动测试。