Junior
Mis on XSLT?
sobes.tech AI
Vastus AI-lt
XSLT (eXtensible Stylesheet Language Transformations) on keel XML-dokumentide teisendamiseks. Seda kasutatakse XML-i teisendamiseks teisteks formaatideks, näiteks HTML-ks, teiseks XML-ks või lihttekstiks, rakendades XSLT stiililehel kirjeldatud reegleid.
Peamised kontseptsioonid:
- XSLT stiilileht: XML-dokument, mis sisaldab teisendusreegleid.
- Mallid (Templates): Põhireeglite plokid. Nad vastavad algse XML-i elementidele või atribuutidele ning määravad, kuidas neid teisendada.
- XPATH: Päringukeel XML-i sõlmede valimiseks. Seda kasutatakse XSLT-s, et määrata, milliste XML-osadele reegleid rakendada.
- XSLT protsessor: Programm, mis teostab teisendust, lugedes algse XML-i ja XSLT stiililehe ning genereerides tulemuse.
Java-l on sisseehitatud tugi XSLT jaoks JAXP (Java API for XML Processing) kaudu.
Näide lihtsast XML-i teisendamisest HTML-ks XSLT abil:
Algne XML:
<raamatud>
<raamat id="1">
<pealkiri>Meister ja Margarita</pealkiri>
<autor>Bulgakov M.</autor>
</raamat>
<raamat id="2">
<pealkiri>Sõda ja rahu</pealkiri>
<autor>Tolstoj L.</autor>
</raamat>
</raamatud>
XSLT stiilileht (näiteks, raamat.xsl):
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/raamatud">
<html>
<head>
<title>Raamatute nimekiri</title>
</head>
<body>
<h1>Raamatute nimekiri</h1>
<ul>
<xsl:apply-templates select="raamat"/>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="raamat">
<li>
<b><xsl:value-of select="pealkiri"/></b>, Autor: <xsl:value-of select="autor"/>
</li>
</xsl:template>
</xsl:stylesheet>
Java kood, mis teostab teisenduse JAXP kasutades:
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import java.io.*;
public class XSLTExample {
public static void main(String[] args) {
try {
// TransformerFactory loomine
TransformerFactory factory = TransformerFactory.newInstance();
// XSLT stiililehe laadimine
Source xslt = new StreamSource(new File("raamat.xsl"));
Transformer transformer = factory.newTransformer(xslt);
// Algse XML laadimine
Source xml = new StreamSource(new File("raamatud.xml"));
// Väljundi voolu määratlemine
Result result = new StreamResult(new File("output.html"));
// Teisenduse teostamine
transformer.transform(xml, result);
System.out.println("Teisendus lõpetatud. Tulemuseks on output.html fail.");
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
}
XSLT on laialdaselt kasutusel veebiarenduses (HTML genereerimine XML-ist), andmete integreerimisel ja XML-sõnumite töötlemisel.