Slurping XML avec Groovy

Au début de l'utilisation de Java en conjonction avec XML, il semblait souvent plus difficile qu'il ne devrait l'être d'utiliser le langage de programmation Java avec le langage de balisage XML. Outre les API DOM et SAX non triviales et souvent implémentées différemment, trouver simplement la version correcte de Xerces (et plus tard, Crimson) sans avoir trop de versions conflictuelles de cette bibliothèque était également un problème courant. Cet environnement a conduit à la création et a reçu successivement le projet JDOM. Des développements ultérieurs tels que l'introduction de l'API standard d'analyse XML Java de JAXP (JDK 1.4) et l'inclusion de JAXB dans Java SE 6 (et d'autres bibliothèques de liaison Java / XML disponibles séparément) faciliteraient l'analyse et l'utilisation de XML en Java . Groovy poursuit ces progrès dans la facilité d'intégration Java / XML. Dans ce billet de blog, je regarde comment l'utilisation de Groovy 's XmlSlurper rend l'analyse XML très simple et presque transparente.

Le code XML simple suivant sera utilisé pour démontrer le XmlSlurper de Groovy. Le fichier XML de cet exemple est appelé RockAndRoll.xml.

RockAndRoll.xml

L'extrait de code suivant montre du code Groovy utilisant XMLSlurper pour imprimer des détails basés sur ce XML source. Le script Groovy dans ce cas est appelé slurpXml.groovy.

slurpXml.groovy

#!/usr/bin/env groovy // slurpXml.groovy // Demonstrates use of Groovy's XML slurping. // albums = new XmlSlurper().parse("RockAndRoll.xml") albums.Album.each { println "${[email protected]}'s album ${[email protected]} was released in ${[email protected]}." it.Song.each { println "\tFeaturing ${[email protected]} that peaked in the U.S. at ${[email protected]}" } } 

Comme le montre le code Groovy ci-dessus, seules quelques lignes de code sont nécessaires pour analyser le XML et imprimer ses résultats dans le cadre de chaînes plus longues. Une seule ligne new XmlSlurper().parse("RockAndRoll.xml")suffit pour analyser le XML source. Ensuite, la variable à laquelle ces résultats sont affectés (dans ce cas, albums) donne accès au contenu XML via une syntaxe familière.

Lorsque le code Groovy ci-dessus est exécuté, ses résultats ressemblent à ceux indiqués dans l'instantané d'écran suivant.

Le Guide de l'utilisateur de Groovy contient une section consacrée à la couverture de la lecture de XML à l'aide du XmlSlurper de Groovy. Cette section souligne des problèmes supplémentaires liés à l'utilisation de XmlSlurper de Groovy, tels que le traitement des noms de balises XML qui incluent des tirets (utilisez des guillemets doubles autour du nom avec trait d'union inclus) et des détails de correspondance d'espace de noms.

Conclusion

Parce que Groovy est vraiment Java, Groovy peut utiliser la pléthore d'API de gestion XML pour Java. Cependant, Groovy peut aller au-delà de cela et fournit des API encore plus faciles à utiliser pour la manipulation XML. XmlSlurper de Groovy est un exemple de la façon dont Groovy rend la lecture / analyse / slurping XML plus facile que jamais.

Références supplémentaires

Outre la section Guide de l'utilisateur Groovy sur XmlSlurper, il existe de nombreuses autres ressources en ligne qui couvrent l'utilisation de XmlSlurper. J'en énumère quelques-uns ici.

• Lecture de XML à l'aide du XmlSlurper de Groovy

• Groovy: traitement du XML existant (6 mars 2009)

• Pratiquement Groovy: création, analyse et diffusion XML (19 mai 2009)

• Rien ne vous donne plus envie de groovy que XML (12 mars 2008)

• Mise à jour de XML avec XmlSlurper

• Groovy XMLSlurper

Cette histoire, "Slurping XML with Groovy" a été initialement publiée par JavaWorld.