26 de Diciembre de 2005 (Daniel P.)Elemento <xsl:template>El elemento <xsl:template> es usado para crear plantillas. El atributo match es usado para asociar la plantilla con un elemento XML. El atributo match puede ser usado también para definir una plantilla para un archivo xml entero. El valor de la atributo match es una expresión XPath (p.e. match =”/” define el documento completo). Veamos un ejemplo simple de un archivo xsl: <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h2>Mi colección de CDs</h2> <table border="1"> <tr bgcolor="#9acd32"> <th>Titulo</th> <th>Artista</th> </tr> <tr> <td>.</td> <td>.</td> </tr> </table> </body> </html> </xsl:template> </xsl:stylesheet> |
Ya que un documento XSL en si mismo es un documento XML, siempre comienzará con la declaración XML: <?xml version="1.0" encoding="ISO-8859-1"?>. El siguiente elemento, <xsl:stylesheet>, define que este documento es un documento de hoja de estilo XSLT (con el número de versión y el atributo namespace de XSLT). El elemento <xsl:template> define una plantilla. El atributo match="/" asocia a la plantilla con la raíz del documento XML. El contenido incrustado dentro del elemento <xsl:template> define el código HTML que se escribirá en la salida. Las dos últimas líneas definen el final de la plantilla y el final de la hoja de estilo. El resultado de la transformación encima se parecerá a esto: Si a la hoja de estilos la procesamos junto con el siguiente documento XML: <?xml version="1.0" encoding="ISO-8859-1"?> <!-- Edited with XML Spy v4.2 --> <catalogo> <cd> <titulo>Empire Burlesque</titulo> <artista>Bob Dylan</artista> <pais>USA</pais> <discografica>Columbia</discografica> <precio>10.90</precio> <anio>1985</anio> </cd> <cd> <titulo>The dock of the bay</titulo> <artista>Otis Redding</artista> <pais>USA</pais> <discografica>Atlantic</discografica> <precio>7.90</precio> <anio>1987</anio> </cd> <cd> <titulo>Picture book</titulo> <artista>Simply Red</artista> <pais>EU</pais> <discografica>Elektra</discografica> <precio>7.20</precio> <anio>1985</anio> </cd> <cd> <titulo>Red</titulo> <artista>The Communards</artista> <pais>UK</pais> <discografica>London</discografica> <precio>7.80</precio> <anio>1987</anio> </cd> <cd> <titulo>Unchain my heart</titulo> <artista>Joe Cocker</artista> <pais>USA</pais> <discografica>EMI</discografica> <precio>8.20</precio> <anio>1987</anio> </cd> </catalogo> |
El resultado sería el siguiente documento HTML: <html> <body> <h2>Mi coleccion de CDs</h2> <table border="1"> <tr bgcolor="#9acd32"><th>Titulo</th><th>Artista</th></tr> <tr><td>.</td><td>.</td> </tr> </table> </body> </html> |
El siguiente paso mostraremos la manera de como se usa la etiqueta <xsl:value-of> para seleccionar ciertos elementos del documento XML.
|