XSLT » Introducción a XSLT

May 29, 2010 por Víctor Cuervo . 1 Comentario

Qué es XSLT

XSLT o XSL Transformations es la parte más importante del lenguaje XSL (eXtensible StyleSheet Language). La función de XSLT es la de transformar documentos XML en documentos XHTML u otros documentos XML. El W3C es el encargado de la definición de especificación XSLT.

XSLT se basa en XPath para realizar la búsqueda de información a través del documento XML. XPath son cadenas que son expresiones regulares, las cuales hacen referencia a alguna estructura dentro del documento XML.

El proceso de transformación se basa en plantillas. Dichas plantillas identifican una estructura a partir de la cual realizar la transformación (con XPath), así como las acciones a realizar con dicha estructura: recorrerla, obtener el dato de la etiqueta, el valor de alguno de sus atributos, contar cuantos elementos tiene la etiqueta anidados,...

Además, para poder aplicar las transformaciones, necesitaremos asociar el documento de transformación al documento XML receptor de la misma.

Antes de empezar a aprender más cosas sobre XSLT sería recomendable que tuvieses algún conocimiento sobre XML.

HTML versus XML+XSLT

A diferencia del lenguaje HTML, donde cada una de sus etiquetas lleva asociada una representación gráfica, el XML identifica datos, los cuales no tienen representación gráfica asociada.

Cuando definimos una tabla en HTML (la etiqueta table), sabemos que las herramientas que interpreten el documento HTML, normalmente los navegadores web, pintarán la tabla. De una forma u otra visualizaremos la tabla en nuestra pantalla.

Si bien, si tenemos un documento XML, donde podemos tener definida la etiqueta <libro>, está no tendrá ninguna representación gráfica asociada. Es por ello que si visualizamos nuestro documento XML con alguna herramienta, esta, mostrará el contenido de la etiqueta, pero sin ninguna representación.

Es en este punto donde entra el lenguaje XSLT. Y es que este lenguaje permite transformar el susodicho documento XML en otro formato, el resultado de la transformación será el que lleve la representación gráfica.

Ejemplos de transformaciones

Así, podemos tener múltiples transformaciones del documento XML en otros documentos de distintos lenguajes: XHTML, SVG, VRML,... Por ejemplo, un documento XML que tuviese una lista de números podría ser transformado en: una tabla o lista de hitos con dicho listado en HTML, en un gráfico de líneas con SVG o podrían ser las alturas de figuras 3D con VRML.

Veamos cómo serían dichas transformaciones:

XML original

  1. 2
  2. 4
  3. 6
  4. 8

XML transformado en HTML

  1.  
  2. <th>Datos</th>
  3. </tr>
  4. <td>2</td>
  5. </tr>
  6. <td>4</td>
  7. </tr>
  8. <td>6</td>
  9. </tr>
  10. <td>8</td>
  11. </tr>
  12. </tbody>
  13. </table>
  14.  

XML transformado en SVG

XML transformado en VRML

  1. #VRML V2.0 utf8
  2.  Box {
  3. size 2 4 6
  4. }

En estos ejemplos, vemos que los datos de partida de un documento XML son utilizados como contenido de otros documentos que tienen representaciones gráficas y pasan a ser valores de los mismos. En el documento HTML son datos de una tabla, en el documento SVG son las coordenadas de una línea y en el documento VRML son las dimensiones de un cubo.