2009-10-05 7 views
1

Je lis un fichier XML avec un schéma basé sur une classe de domaine.Importer du code XML dans une classe de domaine Grails

Voici un exemple simple pour illustrer (ma situation actuelle concerne un grand nombre de champs d'un grand nombre de classes):

class Player { 
    String name 
    Date birthDate 
} 

Le fichier XML à lire est:

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

Donc, mon question est: Lors de l'analyse du fichier XML, je crée des instances de lecteur avec le code Groovy suivant:

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

Existe-t-il un autre moyen plus simple de le faire? Comme les paramètres de liaison lors de la création/mise à jour d'un objet de domaine en utilisant le code new Player(params) ou player.properties = params?

Répondre

8

En fait, vous pouvez donner directement la liste des attributs à votre constructeur de classe de domaine avec attributs().

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

Thx! C'était exactement ce dont j'avais besoin – fabien7474

Questions connexes