Sobes.tech
Junior

Co je to XSLT?

sobes.tech AI

Odpověď od AI

XSLT (eXtensible Stylesheet Language Transformations) je jazyk pro transformaci XML dokumentů. Používá se k převodu XML do jiných formátů, například do HTML, jiného XML nebo prostého textu, pomocí pravidel popsaných v XSLT stylové tabulce.

Hlavní koncepty:

  • XSLT stylová tabulka: XML dokument obsahující pravidla transformace.
  • Šablony (Templates): Hlavní bloky pravidel. Přiřazují prvky nebo atributy původního XML a určují, jak je transformovat.
  • XPATH: Dotazovací jazyk pro výběr uzlů v XML dokumentu. Používá se v XSLT k určení, které části XML se mají použít.
  • XSLT procesor: Program, který provádí transformaci, čte původní XML a XSLT stylovou tabulku a generuje výsledek.

Java má vestavěnou podporu XSLT přes JAXP (Java API for XML Processing).

Příklad jednoduché transformace XML do HTML pomocí XSLT:

Původní XML:

<knihy>
  <kniha id="1">
    <název>Master a Margarita</název>
    <autor>Bulgakov M.</autor>
  </kniha>
  <kniha id="2">
    <název>Válka a mír</název>
    <autor>Tolstoj L.</autor>
  </kniha>
</knihy>

XSLT stylová tabulka (například, kniha.xsl):

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

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

Příklad Java kódu pro provedení transformace s použitím JAXP:

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

public class XSLTExample {

    public static void main(String[] args) {
        try {
            // Vytvoření TransformerFactory
            TransformerFactory factory = TransformerFactory.newInstance();

            // Načtení XSLT stylové tabulky
            Source xslt = new StreamSource(new File("kniha.xsl"));
            Transformer transformer = factory.newTransformer(xslt);

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

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

            // Provedení transformace
            transformer.transform(xml, result);

            System.out.println("Transformace dokončena. Výsledek je v souboru output.html.");

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

XSLT se široce používá ve webovém vývoji (generování HTML z XML pro zobrazení), integraci dat a zpracování XML zpráv.