Mi primer XSLT

04/Sep/2009 XSLT , , , , , 4 Comentarios

XSLT es un lenguaje que nos permite transformar documentos XML de un formato a otro. Por ejemplo transformar documentos XML en documentos XHTML u otros documentos XML.

Para crear nuestro primer XSLT lo primero que tenemos que hacer es escribir nuestro fichero XML. En el caso de este ejemplo vamos a construir un documento de libros como vemos a continuación:

  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. ...
  14. </libros>

Lo que vamos a hacer mediante el XSLT es obtener información del documento XML y crear un documento XHTML donde se vean dichos datos.

Para construir el documento XSLT lo primero que tenemos que saber es que, este, es a su vez otro documento XML. Por lo tanto, la primera línea que nos encontraremos será la definición del XML.

  1. <?xml version="1.0" encoding="iso-8859-1"?>

Lo siguiente es empezar a definir la hoja de estilos y el namespace asociado

  1. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

En todo documento XSLT, su cuerpo, es formado por las plantillas. Estas nos indicaran a partir de que elemento del documento XML vamos a empezar a trabajar. Para nuestro ejemplo, y ya que vamos a pintar en pantalla el primer libro y el primer autor, nos posicionaremos dentro de la estructura libros dela siguiente forma:

  1. <xsl:template match="libros">

El propio documento XSLT combina sentencias de transformación con código HTML. Por lo que encontraremos a continuación es un documento HTML.

  1. <H1> Mi primer documento XSLT </H1>
  2.  
  3. ...Código XSLT...
  4.  
  5. </BODY>
  6. </HTML>

Aunque las sentencias del XSLT son bastantes, la que nosotros necesitamos conocer en este momento es la que nos ayuda a obtener el valor de una etiqueta XML. Cabe indicar que todas las etiquetas XSLT empiezas por xsl que es el namespace definido anteriormente.

Así, para recuperar el valor de una etiqueta usamos xsl:value-of. Como atributo de esta etiqueta encontramos select. El cual, nos sirve para seleccionar el nodo (elemento) del cual queremos extraer su valor:

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

Tanto en el template con el atributo match, como en la etiqueta xsl:value-of con el atributo select estamos utilizando valores XPath. Estos lo que vienen a reflejar, en grandes rasgos, son elementos dentro del árbol XML.

Lo último que nos quedará hacer es reflejar en el documento XML la relación con su fichero de transformación. Para ello utilizamos la siguiente línea dentro del fichero XML:

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

Aunque la potencia del XSLT es muy grande, nos vamos a encontrar que hay navegadores que no lo soportan. En el grupo de los navegadores que si lo soportan encontramos a FireFox, Internet Explorer 6,... y en el grupo de los que no Opera 8, Internet Explorer 5,...

Seguro que en el futuro, todos los navegadores incluirán el soporte de este potente lenguaje de transformación.

Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

4 comentarios en “Mi primer XSLT”

Víctor Cuervo

Manuel

Aqui encontrais una introduccion en XSLT:
http://www.data2type.de/xml-xslt-xslfo/xslt/?L=3

Víctor Cuervo

Cesar Chicchon Andrade

Me aparece este mensaje:
SAXParseException: The XML or Text declaration must start
en la pagina que deberia apaecer la tabla.. a que se debe???

Víctor Cuervo

Víctor Cuervo

@Joshua,

Muchas gracias por el comentario. Prometemos ir mejorando con el lenguaje. 😉

Víctor Cuervo

Joshua

Muchas gracias por el tutorial, muy instructivo y de facil comprension, sola recomendacion mejorar la redaccion y el idioma. saludos

Los comentarios están cerrados.