Given this in a grails action:
def xml = {
rss(version: '2.0') {
...
}
}
render(contentType: 'application/rss+xml', xml)
I see this:
<rss><channel><title></title><description></description><link></link><item></item></channel></rss>
Is there an easy way to pretty print the XML? Something built into the render method, perhaps?
This is a simple way to pretty-print XML, using Groovy code only:
def xml = "<rss><channel><title></title><description>" +
"</description><link></link><item></item></channel></rss>"
def stringWriter = new StringWriter()
def node = new XmlParser().parseText(xml);
new XmlNodePrinter(new PrintWriter(stringWriter)).print(node)
println stringWriter.toString()
results in:
<rss>
<channel>
<title/>
<description/>
<link/>
<item/>
</channel>
</rss>