如何在grails中解析xml后以xml格式显示内容?

如何在grails中解析xml后以xml格式显示内容?,grails,xml-formatting,Grails,Xml Formatting,我有一个sample.xml,看起来像这样 <pre> ${xmlstring.encodeAsHTML()} </pre> 基础知识 100011 程序员 XYZ ` 解析它的代码是 def display = { def parser = new XmlParser() def doc = parser.parse("grails-app/conf/sample.xml") def map = [data: do

我有一个sample.xml,看起来像这样

<pre>
${xmlstring.encodeAsHTML()}
</pre>

基础知识
100011
程序员
XYZ
` 解析它的代码是

def display = {
        def parser = new XmlParser()
        def doc = parser.parse("grails-app/conf/sample.xml")
        def map =  [data: doc]
        render (view:'/myxml',model:map) }
当我运行这个应用程序时,我得到了myxml.gsp上显示的输出

Employee[attributes={};value=[Name[attributes={};value=[ABC]],EmpId[attributes={};
value=[100011]],职业[attributes={};value=[Programmer]],公司[attributes={};
值=[XYZ]]]

我有没有办法把它做成如图所示的格式

<Employee>
<Name>ABC</Name>
<EmpId><100011</EmpId>
<Occupation>Programmer</Occupation>
<Company>XYZ</Company>
</Employee>

基础知识

如果您将此文件作为普通文本文件读取,它应该可以工作。但我不确定XML格式。

文档中有一些将响应呈现为XML的示例(http://grails.org/doc/latest/ref/Controllers/render.html). 我还没用过,但可能是:

import grails.converters.*

...

render doc as XML

jjczopek正确地认为,
将文档呈现为XML
是一种很好的方法。如果您想要对事情进行更多的控制,或者如果您的响应实际上是包含XML部分的HTML,那么您可以使用如下代码:

def display = {
    def doc = new XmlParser().parse("grails-app/conf/sample.xml")
    def writer = new StringWriter()
    def nodePrinter = new XmlNodePrinter(new PrintWriter(writer))
    nodePrinter.preserveWhitespace = true
    nodePrinter.print doc

    render view: '/myxml', model: [xmlstring: writer.toString()]
}
然后在myxml.gsp中,您可以使用


${xmlstring.encodeAsHTML()}

嘿,有没有办法只显示xml文档的一些标记?例如:只有姓名和职业?