Junior
Ce este XSLT?
sobes.tech AI
Răspuns de la AI
XSLT (eXtensible Stylesheet Language Transformations) — un limbaj pentru transformarea documentelor XML. Este utilizat pentru a converti XML în alte formate, cum ar fi HTML, alt XML sau text simplu, aplicând reguli descrise într-un fișier de stil XSLT.
Concepte principale:
- Fișier de stil XSLT: Document XML care conține regulile de transformare.
- Șabloane (Templates): Blocuri principale de reguli. Se potrivesc cu elemente sau atribute din XML-ul sursă și determină cum să fie transformate.
- XPATH: Limbaj de interogare pentru selectarea nodurilor dintr-un document XML. Este folosit în XSLT pentru a determina părțile XML asupra cărora se aplică regulile.
- Procesor XSLT: Program care efectuează transformarea, citind XML-ul sursă și fișierul de stil XSLT, și generând rezultatul.
Java are suport încorporat pentru XSLT prin JAXP (API Java pentru procesarea XML).
Exemplu de transformare simplă de XML în HTML folosind XSLT:
XML sursă:
<carți>
<carte id="1">
<titlu>Maestrul și Margarita</titlu>
<autor>Bulgakov M.</autor>
</carte>
<carte id="2">
<titlu>Război și pace</titlu>
<autor>Tolstoi L.</autor>
</carte>
</carți>
Fișier de stil XSLT (de exemplu, carte.xsl):
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/carți">
<html>
<head>
<title>Lista de cărți</title>
</head>
<body>
<h1>Lista de cărți</h1>
<ul>
<xsl:apply-templates select="carte"/>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="carte">
<li>
<b><xsl:value-of select="titlu"/></b>, Autor: <xsl:value-of select="autor"/>
</li>
</xsl:template>
</xsl:stylesheet>
Cod Java pentru executarea transformării cu JAXP:
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import java.io.*;
public class XSLTExample {
public static void main(String[] args) {
try {
// Crează un TransformerFactory
TransformerFactory factory = TransformerFactory.newInstance();
// Încarcă fișierul XSLT
Source xslt = new StreamSource(new File("carte.xsl"));
Transformer transformer = factory.newTransformer(xslt);
// Încarcă XML-ul sursă
Source xml = new StreamSource(new File("carți.xml"));
// Definește fluxul de ieșire
Result result = new StreamResult(new File("output.html"));
// Execută transformarea
transformer.transform(xml, result);
System.out.println("Transformare finalizată. Rezultatul a fost salvat în output.html");
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
}
XSLT este utilizat pe scară largă în dezvoltarea web (generarea de HTML din XML pentru afișare), integrarea datelor și procesarea mesajelor XML.