如何解决在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中,您可以使用
<pre>
${xmlstring.encodeAsHTML()}
</pre>
,如果您将此文件读取为普通文本文件,则它将正常工作。我不确定XML格式。
,文档在以XML呈现响应方面有许多实例(http://grails.org/doc/latest/ref/Controllers/render.html)。我还没有用过,但是也许是这样的:
import grails.converters.*
...
render doc as XML
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。