2014-03-05 173 views
1

令我比較兩個XML文件互相用XMLUnit測試 的幫助下,現在如果我使用這個代碼比較XMLUnit測試忽略元素

@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 - >。

我已經看過類似的問題,但他們沒有幫助我。

+0

你確定這是你的XML嗎?因爲這不是有效的XML。您在表節點中缺少一個屬性名稱。 – Renan

+1

無論哪種方式,如果您只想比較表節點的屬性值,請使用XPath隔離它們並進行比較。 XMLUnit支持通過XMLAssert.assertXpathsEqual – Renan

+0

@Renan nope它不是我的XML只是用它作爲解釋的目的。 – WarGodNT

回答

0

您需要告訴XMLUnit哪些規則適用於標識它應該彼此匹配的表格元素。您可以通過配置ElementQualifier來實現 - 在您的情況下,您需要使用內置的ElementNameAndAttributeQualifier傳遞identify屬性的名稱作爲構造函數參數。