0

私はこのような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>

?

4

3 に答える 3

0

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>
于 2011-05-23T13:44:05.933 に答える
0

ドキュメントには、応答を XML としてレンダリングする例がいくつかあります (http://grails.org/doc/latest/ref/Controllers/render.html)。私はまだそれを使用したことはありませんが、おそらく次のようなものです:

import grails.converters.*

...

render doc as XML
于 2011-05-23T13:16:42.120 に答える
0

このファイルを通常のテキスト ファイルとして読み取ると、動作するはずです。ただし、XML フォーマットについてはよくわかりません。

于 2011-05-23T13:13:52.310 に答える