[1] : création d'un document XML
import groovy.xml.*
import java.io.*
class Constructeur {
static void main(args) {
def sw = new StringWriter()
def constructeur = new MarkupBuilder(sw)
def personnel = [ "Antoine", "Ludovic", "Emmeline"]
constructeur.patron() {
identite(prenom:"Fabrice") {
age("32")
}
employes() {
personnel.each{name -> constructeur.employe("${name}")}
}
}
println sw.toString()
}
-
}
...donne...
<patron>
<identite prenom="Fabrice">
<age>32</age>
</identitie>
<employes>
<employe>Antoine</employe>
<employe>Ludovic</employe>
<employe>Emmeline</employe>
</employes>
</patron>
|
Groovy Markup
Groovy dispose d'une fonctionnalité appelée Markup, qui permet de définir une structure hiérarchique : XML, Ant, Swing et autres documents à balises, ce directement dans le code, et de manière très concise. Il permet, en faisant appel à tous les langages à balises reconnus ou personnels, de générer rapidement des interfaces Swing/SWT, de lancer des scripts Ant à la volée, d'accéder à une base de données, de lire et écrire du XML...
En quelque sorte, Markup permet d'utiliser ces formats comme s'il s'agissait d'un document DOM. Par exemple, accéder à une donnée XML simplement avec la ligne suivante :
membre_id = doc.projet[5].membre[0].id
Groovy dispose par défaut d'un grand nombre de constructeurs (ou Builders) pour de telles structures : MarkupBuilder , SwingBuilder , AntBuilder ... Leurs usages sont très proches : sans devoir se plonger dans la structure elle-même, il est possible de composer des fichiers assez complexes tout en gardant son code lisible. L'intérêt majeur est bien entendu de créer les fichiers selon les besoins de l'application... |