【发布时间】:2015-01-27 06:23:07
【问题描述】:
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 比较失败。 他将不胜感激任何帮助/指导。
【问题讨论】:
-
我相信xmlunit需要排序后的xml作为输入。
-
感谢 Rao 的评论,但在这里排序对我没有帮助,因为在运行时会生成一个 xml,并与预期的 xml 进行比较。
-
前段时间有类似的问题,所以我所做的是将运行时生成的文件和静态文件传递给进行排序的程序,然后将其传递给另一个实用程序(如 xmlunit)进行比较。但这是针对特定类型的 xml,而不是针对通用 xml。
-
谢谢 Rao ... 我找到了一个解决方案,我在下面发布了。