我正在阅读一个基于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绑定一样?
答案 0 :(得分:8)
实际上,您可以使用 attributes()直接将属性列表提供给域类构造函数。
def players = new XmlSlurper().parse(xmlFile)
players.player.each() {p ->
new Player(p.attributes()).save()
}