Convertir un fichero XML en una página web

01/Ene/2010 XSLT , , , , , , 3 Comentarios

Mediante este ejemplo vamos a iterar por los elementos de un documento XML utilizando las hojas de transformación XSLT. De esta manera conseguiremos convertir un fichero XML en una página web.

En el ejemplo lo que haremos será recorrer los elementos a partir de un punto especificado mediante XPath.

Lo primero que vamos a hacer es montar nuestro documento XML, el cual solo contendrá la información -en este caso libros y autores- y una referencia al archivo que realizará la transformación.

Así, nuestra información será algo parecido a lo siguiente:

  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2. <libros>
  3. <libro>
  4. <titulo>Fuente Ovejuna</titulo>
  5. <autor>Lope de Vega</autor>
  6. <isbn>84-9815-002-7</isbn>
  7. </libro>
  8. <libro>
  9. <titulo>La Celestina</titulo>
  10. <autor>Fernando de Rojas</autor>
  11. <isbn>84-96390-96-9</isbn>
  12. </libro>
  13. <libro>
  14. ...
  15. </libros>

Y la referencia a nuestro fichero de transformación:

  1. <?xml-stylesheet type="text/xsl" href="listarElementos.xsl"?>

Hasta aquí sencillo. Ahora veamos qué tenemos que hacer en nuestro fichero de transformación. Lo primero será definir el template sobre el que queremos trabajar. En el template hacemos referencia, usando XPath, al elemento sobre el cual nos posicionaremos inicialmente. En nuestro caso nos vamos a posicionar sobre la raíz del documento XML. Es por ello que utilizaremos la expresión XPath "/". El elemento XSLT que utilizamos para definir la plantilla es xsl:template.

  1. <xsl:template match="/">
  2. </xsl:template>

Ahora definimos el bucle que recorrerá los elementos. Para ello utilizamos la etiqueta xsl:for-each. Lo que estamos diciendo sería algo así como "por cada elemento que encuentres del tipo x ves iterando". Dentro de la etiqueta xsl:for-each definiremos las acciones que queremos hacer con todos y cada uno de los elementos.

Para especificar el elemento sobre el que se itera, la etiqueta xsl:for-each tiene el atributo select. El cual, tendrá como parámetro un valor XPath que indica un elemento del árbol XML. Así, la etiqueta xsl:for-each nos quedaría de la siguiente forma:

  1. <xsl:for-each select="libros/libro">
  2. </xsl:for-each>

En nuestro caso trataremos cada uno de los libros. Por ello, el nodo elegido es "libros/libro".

Solo nos quedará realizar las acciones oportunas con cada uno de los libros. Este código, será el que pongamos dentro de la etiqueta xsl:for-each. Para nuestro ejemplo bastará con recuperar los valores del titulo y el autor. Para ello utilizamos la etiqueta xsl:value-of como vemos a continuación:

  1. <xsl:value-of select="titulo"/><br/>
  2. <xsl:value-of select="autor"/>

De una forma sencilla e iterando los elementos de un documento XMLL hemos conseguido convertir a dicho documento en una página web.

3 comentarios en “Convertir un fichero XML en una página web”

Víctor Cuervo

Gabriel Castillo

Gracias por el ejemplo, me saco de dudas, realmente me ayudo mucho 🙂

Víctor Cuervo

abel_23

Buenas tardes quisiera saber si puedo mostrar en un navegador web como IE un documento xml que genero del word con algun tipo de transformacion como es el xsl.

Víctor Cuervo

valeria

hola tengo un problema, a la hora que quiero verlo en la web solo me sale la estructura, o sea el codigo fuente. no se como hacer para que se vea como en tus ejemplos.

¿Algo que nos quieras comentar?

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

*

*