xml格式化-如何在grails中进行xml解析后以xml格式显示内容



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

<?xml version="1.0" ?> <Employee> <Name>ABC</Name> <EmpId>100011</EmpId> <Occupation>Programmer</Occupation> <Company>XYZ</Company> </Employee>`解析它的代码是

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]], Occupation[attributes={}; value=[Programmer]],Company[attributes={}; value=[XYZ]]]]

有什么办法我可以得到显示的格式吗

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

jjczopek正确地认为render doc as 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中,您可以使用显示XML

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

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

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

import grails.converters.*
...
render doc as XML

相关内容

  • 没有找到相关文章

最新更新