How can I compare two similar XML files in XMLUnit

Ahmed picture Ahmed · Nov 12, 2009 · Viewed 14.4k times · Source

I want to use XMLUnit to compare two similar XML files.

Basically every thing is same, File1 is a copy of File2 , but in File2 I have changed the order of some elements in one node.

I am trying to run a test where it compares these files and returns a result of similar and not treat these files as different.

Answer

Rohit Agarwal picture Rohit Agarwal · Nov 13, 2009

I think this link can help you - http://www.ibm.com/developerworks/java/library/j-cq121906.html#N10158

Basically, if your File1 is like -

<account>
 <id>3A-00</id>
 <name>acme</name>
</account>

And File2 is same, but only differs in order of <name> and <id> -

<account>
 <name>acme</name>
 <id>3A-00</id>
</account> 

Then you can write a test like below which will compare these and return similar.

public void testIdenticalAndSimilar() throws Exception {
   String controlXML = "<account><id>3A-00</id><name>acme</name></account>";
   String testXML = "<account><name>acme</name><id>3A-00</id></account>"; 
   Diff diff = new Diff(controlXML, testXML);
   assertTrue(diff.similar());
   assertFalse(diff.identical());
}

Hope that helps.