2011-05-23 67 views
0

我有一個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> 

回答

0

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> 
+0

非常感謝!這正是我正在尋找:) – Supriya 2011-05-24 04:44:29

+0

嘿,有沒有什麼辦法可以顯示只有一些標籤的XML文件?例如:只有名字和職業? – Supriya 2011-05-24 10:36:11

0

如果您將該文件作爲普通文本文件讀取,則應該可以正常工作。雖然我不確定XML格式。

0

文檔中有一些以XML呈現響應的例子(http://grails.org/doc/latest/ref/Controllers/render.html)。我從來沒有使用過,但也許是這樣的:

import grails.converters.* 

... 

render doc as XML