Comparando duas cadeias / arquivos XML no Groovy / Java

Eu estou escrevendo testes de unidade para verificar algum construtor de XML.

Agora estou encontrando o problema das diferenças sintáticas entre o resultado esperado e o resultado real, apesar de sua semântica idêntica.

Exemplo:

Resultado esperado:

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

Resultado atual:

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

Eu tentei normalizar o xml usando XmlUtil.serialize (), no entanto, isso parece manter os espaços em branco, deixando diferenças sintáticas.

Como posso obter a forma normalizada / canônica de sequências xml para tornar meus testes mais robustos?

Estou escrevendo um aplicativo Grails, então estou bem com qualquer solução no Groovy ou Java.

questionAnswers(3)

yourAnswerToTheQuestion