我在使用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]
我发现其余的插件文档有点令人困惑,任何帮助都会非常赞赏。
谢谢!
唐纳德
答案 0 :(得分:1)
当你说渲染xml时,它没有显示标签是有道理的。此时,XML是一个XmlSlurper对象,所以它只是调用toString()。
因为你有一个XmlSlurper,你只需要使用它。