如何在xml在grails中解析后以xml格式显示内容?
问题描述:
我有一个sample.xml中,看起来像这样如何在xml在grails中解析后以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
是一个不错的办法。如果您想对事情更多的控制权,或者如果你的反应是真正的HTML包括XML部分,那么你可以使用这样的代码:
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
非常感谢!这正是我正在寻找:) – Supriya 2011-05-24 04:44:29
嘿,有没有什么办法可以显示只有一些标签的XML文件?例如:只有名字和职业? – Supriya 2011-05-24 10:36:11