11

これを Grails アクションで指定すると、次のようになります。

def xml = {
    rss(version: '2.0') {
        ...
    }
}
render(contentType: 'application/rss+xml', xml)

私はこれを見る:

<rss><channel><title></title><description></description><link></link><item></item></channel></rss>

XML をきれいに印刷する簡単な方法はありますか? render メソッドに何かが組み込まれているのではないでしょうか?

4

4 に答える 4

19

これは、Groovy コードのみを使用して XML をきれいに印刷する簡単な方法です。

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()

結果:

<rss>
  <channel>
    <title/>
    <description/>
    <link/>
    <item/>
  </channel>
</rss>
于 2008-10-24T00:33:25.227 に答える
4

リファレンス ドキュメントによると、次の構成オプションを使用してきれいな印刷を有効にすることができます。

 grails.converters.default.pretty.print (Boolean)
 //Whether the default output of the Converters is pretty-printed ( default: false )
于 2010-08-11T15:19:35.200 に答える
3

XmlUtil を使用します。

def xml = "<rss><channel><title></title><description>" +
   "</description><link></link><item></item></channel></rss>"

println XmlUtil.serialize(xml)
于 2012-02-29T22:08:50.320 に答える
3

MarkupBuilder を使用して Groovy xml をきれいに印刷する

def writer = new StringWriter()
def xml = new MarkupBuilder (writer)

xml.rss(version: '2.0') {
        ...
    }
}

render(contentType: 'application/rss+xml', writer.toString())
于 2011-06-13T05:02:13.050 に答える