Sobes.tech
Junior

Cos'è XSLT?

sobes.tech AI

Risposta dell'AI

XSLT (eXtensible Stylesheet Language Transformations) è un linguaggio di trasformazione di documenti XML. Viene utilizzato per convertire XML in altri formati, come HTML, un altro XML o testo semplice, applicando regole descritte in una foglio di stile XSLT.

Concetti principali:

  • Foglio di stile XSLT: Documento XML che contiene le regole di trasformazione.
  • Template (Modelli): Blocchi principali di regole. Corrispondono a elementi o attributi dell'XML sorgente e determinano come trasformarli.
  • XPATH: Linguaggio di query per selezionare nodi in un documento XML. Usato in XSLT per determinare a quali parti dell'XML applicare le regole.
  • Processore XSLT: Programma che esegue la trasformazione, leggendo l'XML sorgente e il foglio di stile XSLT, e generando il risultato.

Java ha supporto integrato per XSLT tramite JAXP (API Java per l'elaborazione XML).

Esempio di trasformazione semplice da XML a HTML usando XSLT:

XML di origine:

<libri>
  <libro id="1">
    <titolo>Il Maestro e Margarita</titolo>
    <autore>Bulgakov M.</autore>
  </libro>
  <libro id="2">
    <titolo>Guerra e Pace</titolo>
    <autore>Tolstoj L.</autore>
  </libro>
</libri>

Foglio di stile XSLT (ad esempio, libro.xsl):

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/libri">
    <html>
      <head>
        <title>Elenco dei libri</title>
      </head>
      <body>
        <h1>Elenco dei libri</h1>
        <ul>
          <xsl:apply-templates select="libro"/>
        </ul>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="libro">
    <li>
      <b><xsl:value-of select="titolo"/></b>, Autore: <xsl:value-of select="autore"/>
    </li>
  </xsl:template>
</xsl:stylesheet>

Codice Java per eseguire la trasformazione usando JAXP:

import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import java.io.*;

public class XSLTExample {

    public static void main(String[] args) {
        try {
            // Creare TransformerFactory
            TransformerFactory factory = TransformerFactory.newInstance();

            // Caricare il foglio di stile XSLT
            Source xslt = new StreamSource(new File("libro.xsl"));
            Transformer transformer = factory.newTransformer(xslt);

            // Caricare l'XML sorgente
            Source xml = new StreamSource(new File("libri.xml"));

            // Definire il flusso di output
            Result result = new StreamResult(new File("output.html"));

            // Eseguire la trasformazione
            transformer.transform(xml, result);

            System.out.println("Trasformazione completata. Risultato salvato in output.html");

        } catch (TransformerConfigurationException e) {
            e.printStackTrace();
        } catch (TransformerException e) {
            e.printStackTrace();
        }
    }
}

XSLT è ampiamente utilizzato nello sviluppo web (generazione di HTML da XML per visualizzazione), integrazione dei dati e elaborazione di messaggi XML.