Best way to pretty print XML response in grails
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>
According to the reference docs, you can use the following configuration option to enable pretty printing:
grails.converters.default.pretty.print (Boolean) //Whether the default output of the Converters is pretty-printed ( default: false )
Use MarkupBuilder to pretty-print your Groovy xml
def writer = new StringWriter()def xml = new MarkupBuilder (writer)xml.rss(version: '2.0') { ... }}render(contentType: 'application/rss+xml', writer.toString())