import java.util.List; import junit.framework.*; import org.custommonkey.xmlunit.*; public class XmlAssertions { private static final String ERROR_MSG = "XML comparison failure. \nExpected: %s\nReceived: %s\n%s"; static { XMLUnit.setIgnoreWhitespace(true); } public static void assertXmlSimilar(String expected, String actual) { try { Diff diff = new Diff(expected, actual); List differences = new DetailedDiff(diff).getAllDifferences(); Assert.assertTrue( String.format(ERROR_MSG, expected, actual, differences), diff.similar()); } catch (Exception ex) { Assert.fail(String.format(ERROR_MSG, expected, actual, ex.getMessage())); } } public static void main(String[] args) { XmlAssertions.assertXmlSimilar("", ""); XmlAssertions.assertXmlSimilar("data", "\ndata\n\n"); try { XmlAssertions.assertXmlSimilar("data", ""); } catch (AssertionFailedError ignored) { //expected } System.out.println("Success on XmlAssertions"); } }