Ir al contenido

Leer un XML con Groovy

Si el otro día veíamos como podíamos crear un XML utilizando Groovy, hoy vamos a ver cómo podemos leer un XML mediante Groovy.

Para ello vamos a partir del mismo documento XML que generábamos. Es un XML de libros y autores muy sencillo.

<libros>
<libro autor="Cervantes">El Quijote</libro>
<libro autor="Homero">La Iliada</libro>
<libro autor="Camilo Jose Cela">Viaje a la Alcarria</libro>
<libro autor="Camilo Jose Cela">La Colmena</libro>
<libro autor="Valerio Massimo Manfredi">Talos de Esparta</libro>
<libro autor="Valerio Massimo Manfredi">La Última Legión</libro>
</libros>

Para leer el fichero XML vamos a utilizar la clase XmlSlurper. Será la clase XmlSlurper la que nos permita analizar el fichero. Para ello lo primero será instanciar el fichero XML mediante una clase File.

new File('libros.xml')

Este objeto de tipo File se lo pasaremos al método parse() del XmlSlurper. El método parse() es el que se encarga de interpretar el XML.

def libros = new XmlSlurper().parse(new File('libros.xml'))

Lo bueno de la clase XmlSlurper y su método parse() es que el resultado lo deja en una estructura estilo XPath muy sencilla de recorrer. Esta estructura es un GPathResult. Es por ello que el resultado lo podemos recorrer mediante un bucle for each de la siguiente forma:

for (libro in libros.libro) {...}

La variable libros.libro contendrá nodos de tipo libro. Por ello, si volcamos libro a pantalla, nos mostrará el contenido del nodo, es decir, el título de libro.

for (libro in libros.libro) {
println "El título es $libro"
}

Si queremos volcar un atributo del nodo. Por ejemplo, el autor, tendremos que utilizar una notación de puntos y una arroba para indicar el atributo. Será algo así:

for (libro in libros.libro) {
println "El autor es ${libro.@autor}"
}

De esta forma, el código final que tendremos para leer un XML con Groovy será:

def libros = new XmlSlurper().parse(new File('libros.xml'))
for (libro in libros.libro) {
println "El libro titulado $libro fue escrito por ${libro.@autor}"
}
Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Leer un XML con Groovy

Aprende a leer un XML con Groovy de forma sencilla y efectiva usando XmlSlurper. Descubre cómo acceder a nodos y atributos fácilmente.

Descargar código