Daniel Prado

XSL-XSLT

Elemento Template (Plantilla) – Etiqueta <xsl:template>

En este artículo describiremos el uso de etiqueta <xsl:template> que nos permitirá asociar una plantilla con un elemento XML para transformarlo. Por ejemplo dado un documento XML con los contenidos y otro XSL con la plantilla, nos permitirá transformar el archivo XML en otro HTML para su visualización.

Por 3 min de lectura Revisado el 1 comentario

Comprobado: Revisión contextual, no ejecución del código: XSLT 3.0 (W3C) (www.w3.org).

Contexto de este artículo

  • Tecnología y versión: XSLT 1.0 y expresiones XPath de esa generación.
  • Año del artículo: 2005.
  • Estado a 11 de octubre de 2026: Conceptos vigentes; sintaxis histórica. XSLT 3.0 es la referencia posterior: comprueba qué versión admite tu procesador.
  • Documentación de referencia: XSLT 3.0 (W3C).

Conservo a continuación el texto y los ejemplos de aquella fecha como archivo técnico. No he ejecutado estos ejemplos en un entorno actual: esta revisión contextual no garantiza que funcionen hoy.

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.

Compartir: WhatsApp Facebook X Correo

Comentarios (1)

  • Daniel P.

    test

Deja tu comentario

No lo publicaremos.

Tu comentario pasará por moderación antes de publicarse. Privacidad.