Sobes.tech
Junior

Čo je XSLT?

sobes.tech AI

Odpoveď od AI

XSLT (eXtensible Stylesheet Language Transformations) je jazyk na transformáciu XML dokumentov. Používa sa na prevod XML do iných formátov, napríklad do HTML, iného XML alebo jednoduchého textu, pomocou pravidiel opísaných v XSLT štýlovej tabuľke.

Hlavné koncepty:

  • XSLT štýlová tabuľka: XML dokument obsahujúci pravidlá transformácie.
  • Šablóny (Templates): Hlavné bloky pravidiel. Zodpovedajú prvky alebo atribúty pôvodného XML a určujú, ako ich transformovať.
  • XPATH: Jazyk pre dotazy na výber uzlov v XML dokumente. Používa sa v XSLT na určenie, na ktoré časti XML sa majú aplikovať pravidlá.
  • XSLT procesor: Program, ktorý vykonáva transformáciu, čítajúc pôvodný XML a XSLT štýlovú tabuľku, a generuje výsledok.

Java má vstavanú podporu pre XSLT cez JAXP (Java API for XML Processing).

Príklad jednoduchého XSLT prevodu XML na HTML:

Pôvodný XML:

<knihy>
  <kniha id="1">
    <názov>Majster a Margarita</názov>
    <autor>Bulgakov M.</autor>
  </kniha>
  <kniha id="2">
    <názov>Vojna a mier</názov>
    <autor>Tolstoj L.</autor>
  </kniha>
</knihy>

XSLT štýlová tabuľka (napríklad, kniha.xsl):

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/knihy">
    <html>
      <head>
        <title>Zoznam kníh</title>
      </head>
      <body>
        <h1>Zoznam kníh</h1>
        <ul>
          <xsl:apply-templates select="kniha"/>
        </ul>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="kniha">
    <li>
      <b><xsl:value-of select="názov"/></b>, Autor: <xsl:value-of select="autor"/>
    </li>
  </xsl:template>
</xsl:stylesheet>

Java kód na vykonanie transformácie pomocou JAXP:

import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import java.io.*;

public class XSLTExample {

    public static void main(String[] args) {
        try {
            // Vytvorenie TransformerFactory
            TransformerFactory factory = TransformerFactory.newInstance();

            // Načítanie XSLT štýlovej tabuľky
            Source xslt = new StreamSource(new File("kniha.xsl"));
            Transformer transformer = factory.newTransformer(xslt);

            // Načítanie pôvodného XML
            Source xml = new StreamSource(new File("knihy.xml"));

            // Určenie výstupného toku
            Result result = new StreamResult(new File("output.html"));

            // Vykonanie transformácie
            transformer.transform(xml, result);

            System.out.println("Transformácia dokončená. Výsledok je v súbore output.html.");

        } catch (TransformerConfigurationException e) {
            e.printStackTrace();
        } catch (TransformerException e) {
            e.printStackTrace();
        }
    }
}

XSLT sa široko používa vo webovom vývoji (generovanie HTML z XML na zobrazenie), integrácii dát a spracovaní XML správ.