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.