Groovy

Leer un XML con Groovy

10/Ene/2013

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.


  El Quijote
  La Iliada
  Viaje a la Alcarria
  La Colmena
  Talos de Esparta
  La Última Legión

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}"
}

Suscribir
Notificar de
guest
0 Comentarios
Opiniones integradas
Ver todos los comentarios