Hi,
I'm comparing 2 XML strings that are not identical but similar - both XML strings have the same nodes but in a different order. I used RecursiveElementNameAndTextQualifier but the similar comparison fails. I'm using version 1.2. Here is my java code.
import org.custommonkey.xmlunit.XMLUnit;
import org.custommonkey.xmlunit.Diff;
import org.custommonkey.xmlunit.examples.RecursiveElementNameAndTextQualifier;
public class XMLUnitTest {
public static void main(String... args) throws Exception {
String s1 = "<main>" +
" <inner>" +
" <bar>50015</bar>" +
" </inner>" +
" <inner>" +
" <bar>50003</bar>" +
" </inner>" +
" <inner>" +
" <bar>50013</bar>" +
" </inner>" +
" <inner>" +
" <bar>50020</bar>" +
" </inner>" +
" <inner>" +
" <bar>50013</bar>" +
" </inner>" +
"</main>";
String s2 = "<main>" +
" <inner>" +
" <bar>50003</bar>" +
" </inner>" +
" <inner>" +
" <bar>50015</bar>" +
" </inner>" +
" <inner>" +
" <bar>50013</bar>" +
" </inner>" +
" <inner>" +
" <bar>50013</bar>" +
" </inner>" +
" <inner>" +
" <bar>50020</bar>" +
" </inner>" +
"</main>";
XMLUnit.setIgnoreWhitespace(true);
Diff diff = new Diff(s1, s2);
diff.overrideElementQualifier(new RecursiveElementNameAndTextQualifier());
boolean isSimilar = diff.similar();
if (!isSimilar) {
System.out.println(diff);
}
}
}
I get the following error:
org.custommonkey.xmlunit.Diff
[not identical] Expected sequence of child nodes '0' but was '1' - comparing <inner...> at /main[1]/inner[1] to <inner...> at /main[1]/inner[2]
[not identical] Expected sequence of child nodes '1' but was '0' - comparing <inner...> at /main[1]/inner[2] to <inner...> at /main[1]/inner[1]
[not identical] Expected sequence of child nodes '3' but was '4' - comparing <inner...> at /main[1]/inner[4] to <inner...> at /main[1]/inner[5]
[not identical] Expected sequence of child nodes '4' but was '2' - comparing <inner...> at /main[1]/inner[5] to <inner...> at /main[1]/inner[3]
[different] Expected presence of child node 'null' but was 'inner' - comparing at null to <inner...> at /main[1]/inner[4]
Thanks for looking into this.
This is a duplicate of Bug #2807167 which is fixed in svn trunk but not released, yet.