Comparando dos cadenas / archivos XML en Groovy / Java

Estoy escribiendo pruebas unitarias para verificar algunos constructores de XML.

Ahora me estoy topando con el problema de las diferencias sintácticas entre el resultado esperado y el resultado real, a pesar de su semántica idéntica.

Ejemplo:

Resultado Esperado:

<parent><child attr="test attribute">text here</child></parent>

Resultado actual:

<parent>
  <child attr="test attribute">
    text here
  </child>
</parent>

Intenté normalizar el xml usando XmlUtil.serialize (), sin embargo, esto parece mantener los espacios en blanco, dejando diferencias sintácticas.

¿Cómo puedo obtener la forma normalizada / canónica de cadenas xml para que mis pruebas sean más sólidas?

Estoy escribiendo una aplicación de Grails, así que estoy de acuerdo con cualquier solución en Groovy o Java.

Respuestas a la pregunta(3)

Su respuesta a la pregunta