Menu

#50 Similar XML comparison fails

Java_1.2
closed-duplicate
nobody
None
5
2009-08-28
2009-08-12
No

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.

Discussion

  • Stefan Bodewig

    Stefan Bodewig - 2009-08-28

    This is a duplicate of Bug #2807167 which is fixed in svn trunk but not released, yet.

     
  • Stefan Bodewig

    Stefan Bodewig - 2009-08-28
    • status: open --> closed-duplicate
     

Log in to post a comment.