Junior
Kas yra XSLT?
sobes.tech AI
Atsakymas iš AI
XSLT (eXtensible Stylesheet Language Transformations) — tai XML dokumentų transformavimo kalba. Ji naudojama XML konvertavimui į kitus formatus, pavyzdžiui, HTML, kitą XML ar paprastą tekstą, taikant XSLT stiliaus lapo aprašytus taisykles.
Pagrindinės sąvokos:
- XSLT stiliaus lapas: XML dokumentas, kuriame yra transformavimo taisyklės.
- Šablonai (Templates): pagrindiniai taisyklių blokai. Jie atitinka pirminio XML elementus ar atributus ir nurodo, kaip juos transformuoti.
- XPATH: užklausų kalba XML mazgų pasirinkimui. Naudojama XSLT, norint nustatyti, kuriems XML dalims taikyti taisykles.
- XSLT procesorius: programa, kuri vykdo transformaciją, skaito pirminį XML ir XSLT stiliaus lapą, ir generuoja rezultatą.
Java turi įmontuotą XSLT palaikymą per JAXP (Java API for XML Processing).
Pavyzdys paprasto XML transformavimo į HTML naudojant XSLT:
Pirminis XML:
<knygos>
<knyga id="1">
<pavadinimas>Meistras ir Margarita</pavadinimas>
<autorius>Bulgakov M.</autorius>
</knyga>
<knyga id="2">
<pavadinimas>Karo ir taikos</pavadinimas>
<autorius>Tolstoj L.</autorius>
</knyga>
</knygos>
XSLT stiliaus lapas (pavyzdžiui, knyga.xsl):
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/knygos">
<html>
<head>
<title>Knygų sąrašas</title>
</head>
<body>
<h1>Knygų sąrašas</h1>
<ul>
<xsl:apply-templates select="knyga"/>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="knyga">
<li>
<b><xsl:value-of select="pavadinimas"/></b>, Autorius: <xsl:value-of select="autorius"/>
</li>
</xsl:template>
</xsl:stylesheet>
Java kodas, atliekantis transformaciją naudojant JAXP:
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import java.io.*;
public class XSLTExample {
public static void main(String[] args) {
try {
// TransformerFactory sukūrimas
TransformerFactory factory = TransformerFactory.newInstance();
// XSLT stiliaus lapo įkėlimas
Source xslt = new StreamSource(new File("knyga.xsl"));
Transformer transformer = factory.newTransformer(xslt);
// Pirminio XML įkėlimas
Source xml = new StreamSource(new File("knygos.xml"));
// Išvesties srauto nustatymas
Result result = new StreamResult(new File("output.html"));
// Transformacijos vykdymas
transformer.transform(xml, result);
System.out.println("Transformacija baigta. Rezultatas išsaugotas output.html faile.");
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
}
XSLT plačiai naudojama interneto kūrime (HTML generavimas iš XML, kad būtų rodomas), duomenų integracijoje ir XML pranešimų apdorojime.