Crear un XML con Groovy

08/Ene/2013 Groovy , , , , Deja un comentario

En este ejemplo vamos a utilizar el lenguaje Groovy para crear un documento XML. Para ello vamos a utilizar la clase MarkupBuilder que será la que nos ayude a construir de una forma sencilla con Groovy.

El XML que pretendemos generar es un XML que nos permita almacenar libros y autores. Que en este cao lo hemos definido de la siguiente forma:

  1. <libros>
  2. <libro autor='Cervantes'>El Quijote</libro>
  3. <libro autor='Homero'>La Iliada</libro>
  4. <libro autor='Camilo Jose Cela'>Viaje a la Alcarria</libro>
  5. <libro autor='Camilo Jose Cela'>La Colmena</libro>
  6. <libro autor='Valerio Massimo Manfredi'>Talos de Esparta</libro>
  7. <libro autor='Valerio Massimo Manfredi'>La Última Legión</libro>
  8. </libros>

Vemos que los autores van como atributo del elemento libro y que el contenido de dicho libro es el titulo del libro. Todos los libros están bajo una estructura libro. Algo sencillo.

Si empezamos con nuestro código Groovy lo primero será definir una cadena, en la cual dejaremos el resultado de nuestro XML. Para ello vamos a utilizar la clase StringWriter.

Esta cadena se la pasaremos a la instanciación del MarkupBuilder.

  1. def xml = new groovy.xml.MarkupBuilder(sw)

Lo bueno del dinamismo de Groovy es que permite crear métodos que no existen. Así cada uno de los nodos del XML estará expresado mediante un método con el nombre del nodo. Por ejemplo, para representar el nombre del nodo libros haremos lo siguiente

  1. xml.libros(){}

Ya solo eso nos creará la estructura del nodo raíz. Ahora vamos a definir cada uno de los elementos libro. Estos los ponemos dentro de las llaves del elemento libro. Será de la siguiente forma:

  1. xml.libros{
  2. libro("El Quijote")
  3. libro("La Iliada")
  4. libro("Viaje a la Alcarria")
  5. }

Vemos que el texto que le pasamos a la estructura libro es el título del libro en cuestión.

Si ahora queremos añadir los atributos, estos, los vamos a poner dentro de la llamada al método libro, con una diferencia y es que seguirán la estructura

atributo:"valor del atributo"

Así, meteremos los autores como atributos de los elementos con el siguiente código:

  1. xml.libros{
  2. libro(autor:"Cervantes","El Quijote")
  3. libro(autor:"Homero","La Iliada")
  4. libro(autor:"Camilo Jose Cela","Viaje a la Alcarria")
  5. }

El código final para crear un XML con Groovy quedará de la siguiente forma:

  1.  
  2. def xml = new groovy.xml.MarkupBuilder(sw)
  3. xml.libros{
  4. libro(autor:"Cervantes","El Quijote")
  5. libro(autor:"Homero","La Iliada")
  6. libro(autor:"Camilo Jose Cela","Viaje a la Alcarria")
  7. }
  8.  

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*