Junior
Czym jest XSLT?
sobes.tech AI
Odpowiedź od AI
XSLT (eXtensible Stylesheet Language Transformations) — język transformacji dokumentów XML. Służy do konwersji XML na inne formaty, np. HTML, inny XML lub tekst prosty, stosując reguły opisane w arkuszu stylów XSLT.
Główne koncepcje:
- Arkusz stylów XSLT: Dokument XML zawierający reguły transformacji.
- Szablony (Templates): Główne bloki reguł. Dopasowują elementy lub atrybuty źródłowego XML i określają, jak je przekształcić.
- XPATH: Język zapytań do wyboru węzłów w dokumencie XML. Używany w XSLT do określenia, które części XML mają zastosować reguły.
- Procesor XSLT: Program wykonujący transformację, czytający źródłowy XML i arkusz stylów XSLT, generujący wynik.
Java ma wbudowane wsparcie dla XSLT przez JAXP (API Java do przetwarzania XML).
Przykład prostej transformacji XML do HTML za pomocą XSLT:
Źródłowy XML:
<książki>
<książka id="1">
<tytuł>Pan i Margarita</tytuł>
<autor>Bulgakov M.</autor>
</książka>
<książka id="2">
<tytuł>Wojna i pokój</tytuł>
<autor>Tolstoj L.</autor>
</książka>
</książki>
Arkusz stylów XSLT (np. książka.xsl):
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/książki">
<html>
<head>
<title>Lista książek</title>
</head>
<body>
<h1>Lista książek</h1>
<ul>
<xsl:apply-templates select="książka"/>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="książka">
<li>
<b><xsl:value-of select="tytuł"/></b>, Autor: <xsl:value-of select="autor"/>
</li>
</xsl:template>
</xsl:stylesheet>
Kod Java do wykonania transformacji za pomocą JAXP:
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import java.io.*;
public class XSLTExample {
public static void main(String[] args) {
try {
// Utwórz TransformerFactory
TransformerFactory factory = TransformerFactory.newInstance();
// Załaduj arkusz stylów XSLT
Source xslt = new StreamSource(new File("książka.xsl"));
Transformer transformer = factory.newTransformer(xslt);
// Załaduj źródłowy XML
Source xml = new StreamSource(new File("książki.xml"));
// Określ strumień wyjściowy
Result result = new StreamResult(new File("output.html"));
// Wykonaj transformację
transformer.transform(xml, result);
System.out.println("Transformacja zakończona. Wynik zapisano w output.html");
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
}
XSLT jest szeroko stosowany w rozwoju stron internetowych (generowanie HTML z XML do wyświetlenia), integracji danych i przetwarzaniu komunikatów XML.