2014-01-31 60 views
0

我想使用XMLUnit比較兩個XML文件(我不想重新創建已經存在的東西)。使用XMLUnit進行XML比較

XML 1:

<?xml version="1.0"?> 
<Product> 
    <Property> 
     <Container value="1">Test 01</Container> 
     <Container value="3">Test 02</Container> 
     <Container value="5">Test 03</Container> 
    </Property> 
</Product> 

XML2:

<?xml version="1.0"?> 
<Product> 
    <Property> 
     <Container value="3">Test 01</Container> 
     <Container value="7">Test 02</Container> 
     <Container value="1">Test 03</Container> 
     <Container value="5">Test 04</Container> 
    </Property> 
</Product> 

我想比較的元素只有在與屬性沿節點相匹配。另外如果位置不同,那麼它應該是相似的。

我嘗試過用DetailedDiff,但它顯示了很多結果,但我只想提取特定的更改。請給你的分段。

+0

This may help u http://stackoverflow.com/questions/141993/best-way-to-compare-2-xml-documents-in-java – Naren

回答

1

如果你是一個順序無關的比較之後再ElementQualifier將幫助:

http://xmlunit.sourceforge.net/userguide/html/ar01s03.html

在某些情況下,在XML中的兩片元素的順序可能不顯著。如果這是真的,那麼DifferenceEngine需要幫助來確定要比較哪些元素。這是ElementQualifier的工作(參見第3.4節「ElementQualifier」)。

具體來說,ElementNameAndAttributeQualifier似乎滿足您的要求:

只有具有相同名稱的元素 - 名稱空間URI,如果存在 - 在ElementNameAndAttributeQualifier的構造資格給所有屬性,以及相同的價值觀。