Импорт XML в класс домена Grails - PullRequest
1 голос
/ 05 октября 2009

Я читаю XML-файл со схемой, основанной на доменном классе.

Вот простой пример для иллюстрации (моя текущая ситуация касается большого количества полей из множества классов):

class Player {
  String name
  Date birthDate
}

XML-файл для чтения:

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

Итак, мой вопрос: При анализе XML-файла я создаю экземпляры Player со следующим кодом Groovy:

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?

1 Ответ

8 голосов
/ 05 октября 2009

На самом деле, вы можете напрямую передать список атрибутов конструктору классов вашего домена с помощью attribute () .

def players = new XmlSlurper().parse(xmlFile)
players.player.each() {p ->
    new Player(p.attributes()).save()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...