Junior
O que é XSLT?
sobes.tech IA
Resposta da IA
XSLT (Linguagem de Transformação de Folhas de Estilo Extensíveis) é uma linguagem para transformar documentos XML. É usada para converter XML em outros formatos, como HTML, outro XML ou texto simples, aplicando regras descritas numa folha de estilos XSLT.
Conceitos principais:
- Folha de estilos XSLT: Documento XML que contém as regras de transformação.
- Modelos (Templates): Blocos principais de regras. Correspondem a elementos ou atributos do XML fonte e determinam como transformá-los.
- XPATH: Linguagem de consulta para selecionar nós num documento XML. Usada no XSLT para determinar quais partes do XML aplicar as regras.
- Processador XSLT: Programa que realiza a transformação, lendo o XML fonte e a folha de estilos XSLT, e gerando o resultado.
O Java tem suporte incorporado para XSLT através do JAXP (API Java para processamento XML).
Exemplo de transformação simples de XML para HTML usando XSLT:
XML fonte:
<livros>
<livro id="1">
<titulo>O Mestre e Margarita</titulo>
<autor>Bulgakov M.</autor>
</livro>
<livro id="2">
<titulo>Guerra e Paz</titulo>
<autor>Tolstoi L.</autor>
</livro>
</livros>
Folha de estilos XSLT (por exemplo, livro.xsl):
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/livros">
<html>
<head>
<title>Lista de livros</title>
</head>
<body>
<h1>Lista de livros</h1>
<ul>
<xsl:apply-templates select="livro"/>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="livro">
<li>
<b><xsl:value-of select="titulo"/></b>, Autor: <xsl:value-of select="autor"/>
</li>
</xsl:template>
</xsl:stylesheet>
Código Java para realizar a transformação usando JAXP:
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import java.io.*;
public class XSLTExample {
public static void main(String[] args) {
try {
// Criar TransformerFactory
TransformerFactory factory = TransformerFactory.newInstance();
// Carregar a folha de estilos XSLT
Source xslt = new StreamSource(new File("livro.xsl"));
Transformer transformer = factory.newTransformer(xslt);
// Carregar o XML fonte
Source xml = new StreamSource(new File("livros.xml"));
// Definir o fluxo de saída
Result result = new StreamResult(new File("output.html"));
// Realizar a transformação
transformer.transform(xml, result);
System.out.println("Transformação concluída. Resultado guardado em output.html");
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
}
O XSLT é amplamente utilizado no desenvolvimento web (geração de HTML a partir de XML para exibição), na integração de dados e no processamento de mensagens XML.