Junior
¿Qué es XSLT?
sobes.tech AI
Respuesta de la IA
XSLT (Lenguaje de Transformación de Hojas de Estilo Extensible) es un lenguaje para transformar documentos XML. Se utiliza para convertir XML en otros formatos, como HTML, otro XML o texto simple, aplicando reglas descritas en una hoja de estilos XSLT.
Conceptos principales:
- Hoja de estilos XSLT: Documento XML que contiene las reglas de transformación.
- Plantillas (Templates): Bloques principales de reglas. Coinciden con elementos o atributos del XML fuente y determinan cómo transformarlos.
- XPATH: Lenguaje de consultas para seleccionar nodos en un documento XML. Se usa en XSLT para determinar a qué partes del XML aplicar las reglas.
- Procesador XSLT: Programa que realiza la transformación, leyendo el XML fuente y la hoja de estilos XSLT, y generando el resultado.
Java tiene soporte incorporado para XSLT a través de JAXP (API Java para procesamiento XML).
Ejemplo de transformación simple de XML a HTML usando XSLT:
XML fuente:
<libros>
<libro id="1">
<titulo>El Maestro y Margarita</titulo>
<autor>Bulgakov M.</autor>
</libro>
<libro id="2">
<titulo>Guerra y Paz</titulo>
<autor>Tolstoi L.</autor>
</libro>
</libros>
Hoja de estilos XSLT (por ejemplo, libro.xsl):
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/libros">
<html>
<head>
<title>Lista de libros</title>
</head>
<body>
<h1>Lista de libros</h1>
<ul>
<xsl:apply-templates select="libro"/>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="libro">
<li>
<b><xsl:value-of select="titulo"/></b>, Autor: <xsl:value-of select="autor"/>
</li>
</xsl:template>
</xsl:stylesheet>
Código Java para realizar la transformación usando JAXP:
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import java.io.*;
public class XSLTExample {
public static void main(String[] args) {
try {
// Crear TransformerFactory
TransformerFactory factory = TransformerFactory.newInstance();
// Cargar la hoja de estilos XSLT
Source xslt = new StreamSource(new File("libro.xsl"));
Transformer transformer = factory.newTransformer(xslt);
// Cargar el XML fuente
Source xml = new StreamSource(new File("libros.xml"));
// Definir el flujo de salida
Result result = new StreamResult(new File("output.html"));
// Realizar la transformación
transformer.transform(xml, result);
System.out.println("Transformación completada. Resultado guardado en output.html");
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
}
XSLT se usa ampliamente en desarrollo web (generación de HTML a partir de XML para visualización), integración de datos y procesamiento de mensajes XML.