XSLT (Extensible Stylesheet Language Transformations) es un lenguaje poderoso diseñado para transformar documentos XML en otros formatos, como HTML, texto plano, o incluso en otro XML. Utilizado principalmente en aplicaciones web y sistemas de intercambio de datos, XSLT permite a los desarrolladores manipular y presentar datos XML de una manera flexible y eficiente. En este artículo, exploraremos los conceptos básicos de XSLT, su sintaxis fundamental y algunos ejemplos de uso práctico.
¿Qué es XSLT?
XSLT es parte de la familia de tecnologías XSL (Extensible Stylesheet Language), que también incluye XSL-FO (Formatting Objects). XSLT se utiliza para definir reglas de transformación que convierten documentos XML de una estructura a otra. Las transformaciones XSLT son declarativas, lo que significa que describen el «qué» debe hacerse más que el «cómo».
Estructura Básica de un Estilo XSLT
Un archivo XSLT es un documento XML que contiene elementos y atributos del espacio de nombres XSLT. La estructura básica de un archivo XSLT incluye:
- o : El elemento raíz que define el documento XSLT.
- : Define una plantilla que se aplica a un patrón de nodos en el documento XML de origen.
- : Extrae y muestra el valor de un nodo.
- : Aplica plantillas a los nodos seleccionados.
Ejemplo Básico de XSLT
Imaginemos que tenemos un documento XML simple que describe una lista de libros:
<library>
<book>
<title>XML for Beginners</title>
<author>John Doe</author>
<year>2020</year>
</book>
<book>
<title>Advanced XML</title>
<author>Jane Smith</author>
<year>2021</year>
</book>
</library>
Queremos transformar este XML en una lista HTML. Un archivo XSLT para realizar esta transformación podría verse así:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
<body>
<h2>Library Books</h2>
<ul>
<xsl:apply-templates select="library/book"/>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="book">
<li>
<xsl:value-of select="title"/> by <xsl:value-of select="author"/> (<xsl:value-of select="year"/>)
</li>
</xsl:template>
</xsl:stylesheet>
En este ejemplo:
- El primer coincide con el nodo raíz «/» del documento XML y define la estructura básica del documento HTML de salida.
- El se utiliza para aplicar plantillas a cada elemento
<book>
en el documento XML de origen. - El segundo define cómo se debe transformar cada elemento
<book>
en un elemento<li>
de HTML, extrayendo los valores detitle
,author
, yyear
.
Funcionalidades Avanzadas de XSLT
Además de las transformaciones básicas, XSLT ofrece una amplia gama de funcionalidades avanzadas:
- Filtrado y Selección: Utilizando XPath, XSLT puede seleccionar y filtrar nodos basados en diversas condiciones.
- Iteración y Ordenamiento: Con y , es posible iterar sobre conjuntos de nodos y ordenarlos.
- Condicionales: Las instrucciones y permiten ejecutar transformaciones condicionales.
- Variables y Parámetros: Con y , se pueden definir variables y parámetros reutilizables en las transformaciones.
Ejemplo de Uso de Variables y Parámetros
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:param name="currentYear" select="2023"/>
<xsl:template match="/">
<html>
<body>
<h2>Library Books</h2>
<ul>
<xsl:apply-templates select="library/book"/>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="book">
<xsl:variable name="age" select="$currentYear - year"/>
<li>
<xsl:value-of select="title"/> by <xsl:value-of select="author"/> (<xsl:value-of select="year"/>) - <xsl:value-of select="$age"/> years old
</li>
</xsl:template>
</xsl:stylesheet>
En este ejemplo, se define un parámetro $currentYear
que representa el año actual y se calcula la edad del libro usando una variable $age
.
Conclusión
XSLT es una herramienta esencial para transformar y presentar datos XML de manera flexible y eficiente. Con su capacidad para seleccionar, filtrar, y manipular nodos XML utilizando XPath, y sus poderosas funcionalidades para definir plantillas y reglas de transformación, XSLT permite a los desarrolladores crear presentaciones dinámicas y personalizadas de datos XML. Comprender y dominar XSLT puede mejorar significativamente la capacidad de trabajar con datos XML en una variedad de aplicaciones y entornos.
Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.