Slurping XML con Groovy

En los primeros días del uso de Java junto con XML, a menudo parecía más difícil de lo que debería ser usar el lenguaje de programación Java con el lenguaje de marcado XML. Además de las API DOM y SAX no triviales y, a menudo, implementadas de manera diferente, simplemente encontrar la versión correcta de Xerces (y más tarde, Crimson) sin tener demasiadas versiones en conflicto de esa biblioteca también era un problema común. Este entorno propició la creación y sucesivamente del proyecto JDOM. Desarrollos posteriores, como la introducción de la API estándar de análisis XML de Java de JAXP (JDK 1.4) y la inclusión de JAXB en Java SE 6 (y otras bibliotecas de enlace Java / XML disponibles por separado) facilitarían mucho el análisis y el trabajo con XML en Java. . Groovy continúa estos avances en la facilidad de integración de Java / XML. En esta publicación de blog, miro cómo el uso de Groovy 's XmlSlurper hace que el análisis de XML sea refrescantemente fácil y casi transparente.

El siguiente código XML simple se utilizará para demostrar XmlSlurper de Groovy. El archivo XML de este ejemplo se llama RockAndRoll.xml.

RockAndRoll.xml

El siguiente fragmento de código muestra algo de código Groovy usando XMLSlurper para imprimir algunos detalles basados ​​en este XML de origen. El script Groovy en este caso se llama 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]}" } } 

Como demuestra el código Groovy anterior, solo se requieren unas pocas líneas de código para analizar el XML e imprimir sus resultados como parte de cadenas más largas. La única línea new XmlSlurper().parse("RockAndRoll.xml")es todo lo que se necesita para analizar el XML de origen. Luego, la variable a la que se asignan esos resultados (en este caso albums) proporciona acceso al contenido XML a través de una sintaxis familiar.

Cuando se ejecuta el código Groovy anterior, sus resultados se parecen a los que se muestran en la siguiente captura de pantalla.

La Guía del usuario de Groovy tiene una sección dedicada a la cobertura de la lectura de XML utilizando XmlSlurper de Groovy. Esta sección señala problemas adicionales relacionados con el uso de XmlSlurper de Groovy, como tratar con nombres de etiquetas XML que incluyen guiones (use comillas dobles alrededor del nombre con guión incluido) y detalles de coincidencia de espacios de nombres.

Conclusión

Debido a que Groovy realmente es Java, Groovy puede hacer uso de la gran cantidad de API de manejo de XML para Java. Sin embargo, Groovy puede ir más allá y ofrece API aún más fáciles de usar para la manipulación de XML. XmlSlurper de Groovy es un ejemplo de cómo Groovy hace que la lectura / análisis / sorbido de XML sea más fácil que nunca.

Referencias adicionales

Además de la sección de la Guía del usuario de Groovy en XmlSlurper, hay muchos otros recursos en línea que cubren el uso de XmlSlurper. Enumero algunos de ellos aquí.

• Leer XML con XmlSlurper de Groovy

• Groovy: procesamiento de XML existente (6 de marzo de 2009)

• Practically Groovy: Building, pasing, and slurping XML (19 de mayo de 2009)

• Nada te hace querer más Groovy que XML (12 de marzo de 2008)

• Actualización de XML con XmlSlurper

• Groovy XMLSlurper

Esta historia, "Slurping XML with Groovy" fue publicada originalmente por JavaWorld.