使用Grails REST插件获取XML

时间:2011-07-01 14:14:01

标签: xml rest grails

我在使用grails中的REST插件时遇到问题。具体来说,我试图将xml从get请求转换为控制器中的Map。

我试图从返回XML获取数据的数据源看起来像这样(为简单起见,这是缩短的):

<process id="345">
    <correctedBy>Joanne W.</correctedBy>
    <editBy>Joanne W.</editBy>
    <editDate>2009-12-23 00:00:00.0 EST</editDate>
    <produceBy>Stephen</produceBy>
    <produceDate>2010-01-14 00:00:00.0 EST</produceDate>
</process>

在我的控制器中,我有代码来向此服务发出get请求

def getRest = {
        def wfRequest
        withHttp(uri: "http://myurl:8080") {
               wfRequest = get(path : '/application/controller/' + params.id,
                   requestContentType: XML) { resp, xml ->
                        render xml
                   }
        }
}

好了到目前为止,这将从xml返回数据,但所有标记都消失了:

Joanne W.Joanne W.2009-12-23 00:00:00.0 ESTStephen2010-01-14 00:00:00.0 EST

有人能指出我如何访问从此请求返回的XML的正确方向吗?我想逐步浏览xml的“process”节点中的每个kay值对,并填充一个看起来像

的地图
[correctedBy: Joanne W., editBy: Joanne W., editDate: 2009-12-23 00:00:00.0 EST, produceBy: Stephen, produceDate: 2010-01-14 00:00:00.0 EST]

我发现其余的插件文档有点令人困惑,任何帮助都会非常赞赏。

谢谢!

唐纳德

1 个答案:

答案 0 :(得分:1)

当你说渲染xml时,它没有显示标签是有道理的。此时,XML是一个XmlSlurper对象,所以它只是调用toString()。

请参阅this for more information

因为你有一个XmlSlurper,你只需要使用它。