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.