Junior
Šta je XSLT?
sobes.tech АИ
Одговор од АИ
XSLT (eXtensible Stylesheet Language Transformations) je jezik za transformaciju XML dokumenata. Koristi se za pretvaranje XML u druge formate, na primer u HTML, drugi XML ili običan tekst, primenom pravila opisanih u XSLT stilu tabeli.
Glavne koncepcije:
- XSLT stil tabela: XML dokument koji sadrži pravila transformacije.
- Šabloni (Templates): Glavni blokovi pravila. Povezuju elemente ili atribute izvornog XML i određuju kako ih transformisati.
- XPATH: Jezik za upite za izbor čvorova u XML dokumentu. Koristi se u XSLT za određivanje delova XML na koje primeniti pravila.
- XSLT procesor: Program koji izvršava transformaciju, čitajući izvorni XML i XSLT stil tabelu, i generišući rezultat.
Java ima ugrađenu podršku za XSLT putem JAXP (Java API for XML Processing).
Primer jednostavne transformacije XML u HTML koristeći XSLT:
Izvorni XML:
<knjige>
<knjiga id="1">
<naslov>Majstor i Margarita</naslov>
<autor>Bulgakov M.</autor>
</knjiga>
<knjiga id="2">
<naslov>Rat i mir</naslov>
<autor>Tolstoj L.</autor>
</knjiga>
</knjige>
XSLT stil tabela (npr. knjiga.xsl):
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/knjige">
<html>
<head>
<title>Lista knjiga</title>
</head>
<body>
<h1>Lista knjiga</h1>
<ul>
<xsl:apply-templates select="knjiga"/>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="knjiga">
<li>
<b><xsl:value-of select="naslov"/></b>, Autor: <xsl:value-of select="autor"/>
</li>
</xsl:template>
</xsl:stylesheet>
Java kod za izvršenje transformacije koristeći JAXP:
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import java.io.*;
public class XSLTExample {
public static void main(String[] args) {
try {
// Kreiranje TransformerFactory
TransformerFactory factory = TransformerFactory.newInstance();
// Učitavanje XSLT stil tabele
Source xslt = new StreamSource(new File("knjiga.xsl"));
Transformer transformer = factory.newTransformer(xslt);
// Učitavanje izvornog XML
Source xml = new StreamSource(new File("knjige.xml"));
// Definisanje izlaznog toka
Result result = new StreamResult(new File("output.html"));
// Izvršenje transformacije
transformer.transform(xml, result);
System.out.println("Transformacija završena. Rezultat je u output.html.");
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
}
XSLT se široko koristi u veb razvoju (generisanje HTML iz XML za prikaz), integraciji podataka i obradi XML poruka.