Sobes.tech
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.