出力を非正規化し、実際に名前空間コンテキストを必要とするノードとともに名前空間コンテキストを含めているようです。
たとえば、この質問の Web ページには、creativeCommons 名前空間が埋め込まれています。
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:thr="http://purl.org/syndication/thread/1.0">
<!-- snip -->
<creativeCommons:license>http://www.creativecommons.org/licenses/by-nc/2.5/rdf</creativeCommons:license>
<!-- snip -->
</feed>
このスクリプトを使用して xml を出力すると、次のようになります。
def root = new XmlParser().parseText("http://stackoverflow.com/feeds/question/227447".toURL().text)
println new XmlNodePrinter().print(root)
その名前空間を必要とするライセンス ノードに名前空間を移動することになります。この場合、その名前空間には単一のノードしかないため、大したことではありません。XML の大部分が名前空間化されていた場合、おそらく、さらに多くのデータが肥大化するでしょう。
<feed xmlns="http://www.w3.org/2005/Atom">
<!-- snip -->
<creativeCommons:license xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">
http://www.creativecommons.org/licenses/by-nc/2.5/rdf
</creativeCommons:license>
<!-- snip -->
</feed>
実際にノードを正規化する必要がある場合は、XmlNodePrinter を微調整して、XML を介して 2 つのパスを実行する必要があります。最初に、使用されているすべての名前空間を収集し、2 番目に、各名前空間内ではなく上部にそれらを出力します。グルーヴィーなソース コードは実際には非常に読みやすく、実際にこれが必要な場合でも変更するのはそれほど難しくありません。