2
    XML1:
    <record>
        <record name="technicalEnvelope" javaclass="XXX">
          <value name="flowReferenceId">xyz</value>
        </record>
        <record name="functionalEnvelope" javaclass="XXX">
          <value name="flowReferenceId">abc</value>
        </record>
    </record>
    XML2:
    <record>
        <record name="functionalEnvelope" javaclass="XXX">
          <value name="flowReferenceId">abc</value>
        </record>
        <record name="technicalEnvelope" javaclass="XXX">
          <value name="flowReferenceId">xyz</value>
        </record>
    </record>

    Diff myDiff = new Diff(XML1, XML2);
    assertTrue("pieces of XML are similar " + myDiff, myDiff.similar());

由于顺序不同,这两个相似 XML 的比较失败。他将高度赞赏任何帮助/指导。

4

2 回答 2

0
    Diff myDiff = new Diff(myControlXML, myTestXML);
    myDiff.overrideElementQualifier(new ElementNameAndAttributeQualifier());
    assertTrue("pieces of XML are similar " + myDiff, myDiff.similar());
于 2015-01-27T10:43:44.873 回答
0

对于更复杂的元素,您需要告诉 XMLUnit 如何识别要相互比较的元素。这正是ElementQualifier他的工作。有一堆内置的实现ElementQualifier(就像ElementNameAndAttributeQualifierHoshang 使用的那样),但如果它们都不符合您的要求,您需要自己实现接口。

于 2015-02-03T16:13:50.147 回答