Sobes.tech
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.