Grails XML转换器 - 更改根节点名称

时间:2014-08-28 06:32:36

标签: grails groovy

我在groovy类中有以下代码,我想更改根节点的名称。我的域对象名称是EMP,我想将其更改为以XML格式转换域。

def init = {
    XML.registerObjectMarshaller Emp
     { emp, xml ->
        xml.build {
          emp_name(emp.name)
          emp_dept(emp.dept)
        }
      }      
}   

1 个答案:

答案 0 :(得分:0)

要更改根名称,您需要使用NameAwareMarshaller,这比您当前使用的实现稍微复杂一些。

虽然有点过时,但blog entry详细解释了所有步骤。特别要注意转换器的startNode属性。

public void marshalObject(Object object, XML converter) {
  Foo foo = object as Foo

  converter.startNode 'name'
  converter.chars foo.name
  converter.end()

  Map map = [firstKey: 'firstValue', secondKey: 'secondValue']
  converter.startNode 'locallyDefinedMap'
  converter.convertAnother map
  converter.end()
}