将XML导入Grails域类

fab*_*474 1 xml grails groovy

我正在阅读一个XML文件,其中包含一个基于Domain Class的模式.

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

class Player {
  String name
  Date birthDate
}
Run Code Online (Sandbox Code Playgroud)

要读取的XML文件是:

<players>
<player name='P1' birthDate='12-09-1983'/>
</players>
Run Code Online (Sandbox Code Playgroud)

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

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

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

roc*_*chb 8

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

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