Java XMLUnit忽略元素的顺序

Java XMLUnit忽略元素的顺序,java,xml,xmlunit,Java,Xml,Xmlunit,在XMLUnit的帮助下,我比较了两个xml文件 现在如果我用这个代码来比较 @Test public void testForEquality() throws Exception { String xml1 = "<table = "01"><uid></uid></table><table = "02"><uid></uid></table>"; String xml2 = "<tab

在XMLUnit的帮助下,我比较了两个xml文件 现在如果我用这个代码来比较

@Test
public void testForEquality() throws Exception {
 String xml1 = "<table = "01"><uid></uid></table><table = "02"><uid></uid></table>";
 String xml2 = "<table = "02"><uid></uid></table><table = "01"><uid></uid></table>";
 assertXMLEqual(myControlXML, myTestXML);
 Diff diff = new Diff(myControlXML, myTestXML);
 assertTrue(diff.similar());
}
现在它给出了:预期的属性值为'02',但为'01' 但是我不希望有什么不同,我希望表id是唯一的,并且只进行检查 如果在另一个文件中看到相同的表id,则本例中的主要元素:table->包含的内容


我已经准备好查看类似的问题,但这些问题并没有帮到我。

您需要告诉XMLUnit要应用哪些规则来识别它应该相互匹配的表元素。您可以通过配置ElementQualifier来实现这一点,在您的情况下,您需要使用内置的ElementName和AttributeEqualifier,将标识属性的名称作为构造函数参数传递。

您确定这是您的XML吗?因为这不是有效的XML。表节点中缺少属性名称。无论是哪种情况,如果只想比较表节点的属性值,请使用XPath将它们隔离并进行比较。XMLUnit通过XMLAssert支持这一点。assertXpathsEqual@Renan不,这不是我的XML,只是用作解释。