将XML导入Grails域类

时间:2009-10-05 10:57:07

标签: xml grails groovy

我正在阅读一个基于Domain Class的模式的XML文件。

这是一个简单的例子(我目前的情况涉及很多类的许多领域):

class Player {
  String name
  Date birthDate
}

要阅读的XML文件是:

<players>
<player name='P1' birthDate='12-09-1983'/>
</players>

所以我的问题是: 解析XML文件时,我使用以下Groovy代码创建Player实例:

def players = new XmlSlurper().parse(xmlFile)
players.player.each() {p ->
  new Player(name: p.@name, birthDate: p.@birthDate).save()
}

还有另一种更简单的方法吗? 与使用new Player(params)player.properties = params等代码创建/更新域对象时的params绑定一样?

1 个答案:

答案 0 :(得分:8)

实际上,您可以使用 attributes()直接将属性列表提供给域类构造函数。

def players = new XmlSlurper().parse(xmlFile)
players.player.each() {p ->
    new Player(p.attributes()).save()
}