Cargar un combo con XSLT

08/Sep/2009 XSLT , , , , , , Deja un comentario

La pretensión de este ejemplo es ver como podemos cargar un combo (desplegable) mediante una hoja XSLT. Es decir, utilizar los datos de un XML para que aparezcan como opciones de un combo.

Para ello partimos de nuestro XML de ejemplo de siempre. Nuestros autores. La verdad es que debería de pensar en sacarlo a una página aparte, ya que solo hago que hacer «copy & paste». Pero veamos como es el XML de autores:



  
    Fuente Ovejuna
    Lope de Vega
    84-9815-002-7
  
  
    La Celestina
    Fernando de Rojas
    84-96390-96-9
  
  
    Don Juan Tenorio
    Jose Zorilla
   84-96390-97-7
  

En nuestro ejemplo vamos a cargar un combo con los títulos de los libros que están dentro del XML. A si que pongámonos manos a la obra con nuestra hoja de transformación.

Hay que recordar que las hojas de transformación son documentos XML. A si que lo primero que veremos en el será la cabecera que lo identifique XML y la definición del namespace de XSL.



Esto era obvio, pero por si acaso había algún despistado, había que recordarlo.

Pero vayamos al meollo. Para conseguir la carga del combo tenemos que definir una plantilla. Dicha plantilla lo que tendrá que hacer es recorrer los elementos libro e ir generando las etiquetas que son las que representan el contenido del combo. Para iterar sobre los elementos utilizamos la etiqueta xsl:for-each.

En dicha etiqueta tenemos que establecer como atributo de iteración, select, el conjunto de etiquetas sobre las que queremos iterar. En nuestro caso libros/libro. Y en cada iteración obtener el valor del atributo. Para esto utilizaremos la etiqueta xsl:value-of, que al igual que la anterior tiene un atributo select, que en este caso indica la etiqueta de la cual se quiere recuperar el valor.

Al final nos queda algo así:


  

Ya que al final, lo que vamos es buscando que la hoja de transformación suelte un código HTML como el siguiente:

A si que como has podido comprobar, dentro de la hoja de transformación entre el código anterior tendremos que añadir la etiqueta SELECT. Quedándonos la hoja de transformación como sigue:

Y poco más. Solo recordar que el documento XML tiene que tener una referencia a la hoja de transformación que lo va a usar:

¿Algo que nos quieras comentar?

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

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.