Está en la página 1de 4

XML y XSL para generar HTML

Una breve introducción Teniendo en cuenta la definición de los siguientes conceptos:

XML (Extensible Markup Language): Sencillo lenguaje de marcado para estructurar los datos en forma de árbol. XSL (Extensible Stylesheet Language): lenguaje transformar los datos XML en un nuevo documento. de marcas para

XSLT (XSL Transformations): lenguaje de marcas que describe la forma en la que XSL toma un documento XML (denominado fuente) y lo transforma en una versión completamente diferente del documento (denominado árbol resultado) basándose en los filtros y patrones que se incluyen en la hoja de estilos. En definitiva, le da el formato visual al documento. Xpath (XML Path Language): es el lenguaje utilizado para direccionar fragmentos de documentos XML. Es utilizado para describir expresiones y caminos locales que nos permiten crear transformaciones XSL avanzadas.

Podemos decir en resumen, que a través de un archivo de datos en formato XML (y una hoja de estilo XSL se puede generar un documento HTML bien formado, como se representa en la imagen siguiente :

Documento XML Documento XSL Procesado r XSL

Documento HTML, PDF...

Como ventaja principal de este formato, optemos una estructura en la que se separan los datos (documento XML) de su forma de presentación (documento XSL) al cliente. No se ha de confundir un XSL con un CSS, ya que este último lo único que hace es “decorar” el HTML con una serie de reglas, mientras que con el procesador XSL toma como fuente el documento XML, lo examina, y según sus instrucciones lo transforma en un documento nuevo. Por otra parte, se ha de tener en cuenta que el XSL puede procesarlo el navegador cliente o puede ser procesado por la parte del servidor, llegando solo HTML al navegador. Ejemplo inicial Un sencillo ejemplo podría ser el siguiente:

Archivo XML de datos a procesar por la hoja XSL
Página 1

0" encoding="iso-8859-1"?> <notas> <alumno convocatoria="Ext"> <nombre>Carlos</nombre> <apellidos>Sánchez</apellidos> <num-matricula>j404</num-matricula> <nota-teoria>8.<?xml version="1.0</nota-practica> <nota-final>6.0</nota-final> </alumno> <alumno convocatoria="Jun"> <nombre>Pedro</nombre> <apellidos>Jimenez</apellidos> <num-matricula>j405</num-matricula> <nota-teoria>8.org/1999/XSL/Transform" version="1.0</nota-practica> <nota-final>7.0" encoding="ISO-8859-1"?> <!--espacios de nombres autilizar--> <xsl:stylesheet xmlns:xsl="http://www.Elemento Raíz --> <xsl:template match="/"> <html> <head> <title>Notas</title> </head> <body> <center>nodo raíz</center> <xsl:apply-templates/> </body> </html> </xsl:template> <!-.w3.Elemento nota --> <xsl:template match="nota"> <p>Nodo notas</p> Página 2 .0</nota-final> </alumno> </notas>  Archivo XML de datos a procesar por la hoja XSL <?xml version="1.0</nota-practica> <nota-final>4.0</nota-teoria> <nota-practica>7.0</nota-teoria> <nota-practica>7.0"> <!-.0</nota-teoria> <nota-practica>3.0</nota-final> </alumno> <alumno convocatoria="Jun"> <nombre>Bernad</nombre> <apellidos>Perez</apellidos> <num-matricula>j406</num-matricula> <nota-teoria>9.

A continuación se presentan las etiquetas esenciales para comenzar a trabajar (no las extensiones propias de cada navegador).w3.org la referencia oficial de cada versión).Elementos alumnos --> <xsl:template match="alumno"> <p>Nodo alumno</p> <xsl:apply-templates/> </xsl:template> </xsl:stylesheet> Referencia del lenguaje – construyendo un documento XSL No todos los navegadores interpretan las etiquetas XSL como indica la especificación del W3C. Como ejemplo tenemos la implementación de las etiquetas de <xsl:script> i <xsl:eval> de IE.<xsl:apply-templates/> </xsl:template> <!-. la primera línea será: <?xml versión=’1. se añaden extensiones al XSL para aumentar las prestaciones. aunque como es habitual en cada versión de navegador de las distintas plataformas. Primer elemento Puesto que un documento XSL es en sí un elemento XML.0’?> Elementos XSL iniciales    <xsl:stylesheet> <xsl:output> <xsl:include> Elementos de ajuste  <xsl:template> Elementos de selección      <xsl:apply-templates> <xsl:call-templates> <xsl:value-of> <xsl:for-each> <xsl:sort> Elementos de comprobación   <xsl:if> <xsl:choose> o o <xsl:for-when> <xsl:otherwise> Otros elementos Página 3 . pero el estándar del lenguaje está bien definido (consultar en http://www.

0"> <!-.0" encoding="ISO-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.org/TR/WD-xsl" version="1.      <xsl:element> <xsl:atribute> <xsl:comment> <xsl:variable> <xsl:param> <xsl:width-param> ¿Como sabe un documento XML qué un documento XSL debe utilizar? Para indicar al XML que debe utilizar un XSL.w3.Elemento Raíz --> <xsl:template match="/"> <html> <head> <title>Notas</title> </head> <style type="text/css"> .} </style> <body> <center>Listado de notas de los alumnos</center> <table border="1" align="center"> <tr align="center" bgcolor="yellow"> <td>Matricula</td> <td>Nombre</td> <td>Apellidos</td> <td>Nota final</td> </tr> <xsl:for-each select="notas/alumno"> <xsl:sort select="nombre" data-type="text" order="ascending"/> <tr align="center"> <td><xsl:value-of select="num-matricula"/></td> <td><xsl:value-of select="nombre"/></td> <td><xsl:value-of select="apellidos"/></td> <td><xsl:value-of select="nota-final"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> Página 4 .nota{padding-left:10px. debemos introducir en la segunda línea en el XML como la siguiente: <?xml-stylesheet type=”text/xsl” href=”mi_hoja_de_estilo.xsl”?> Ejemplo 1 Con el mismo XML visto anteriormente podríamos construir un ejemplo más complicado: <?xml version="1.