如何在grails中解析xml后以xml格式显示内容?
我有一个sample.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
<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文档的一些标记?例如:只有姓名和职业?