Junior
Mi az az XSLT?
sobes.tech MI
Válasz az MI-től
Az XSLT (eXtensible Stylesheet Language Transformations) az XML-dokumentumok átalakítására szolgáló nyelv. Az XML más formátumokra való átalakítására használják, például HTML-re, más XML-re vagy egyszerű szövegre, az XSLT stíluslapban leírt szabályok alkalmazásával.
Főbb fogalmak:
- XSLT stíluslap: Átalakítási szabályokat tartalmazó XML-dokumentum.
- Sablonok (Templates): A szabályok fő egységei. Az eredeti XML elemeit vagy attribútumait társítják, és meghatározzák, hogyan kell őket átalakítani.
- XPATH: Lekérdezési nyelv az XML csomópontjainak kiválasztására. Az XSLT-ben arra használják, hogy meghatározzák, mely XML részekre alkalmazzák a szabályokat.
- XSLT processzor: Olyan program, amely végrehajtja az átalakítást, olvassa az eredeti XML-t és az XSLT stíluslapot, és generálja az eredményt.
A Java beépített támogatást nyújt az XSLT-hez a JAXP (Java API for XML Processing) segítségével.
Egyszerű példa XML átalakítására HTML-re XSLT-vel:
Eredeti XML:
<könyvek>
<könyv id="1">
<cím>A Mester és Margarita</cím>
<szerző>Bulgakov M.</szerző>
</könyv>
<könyv id="2">
<cím>Háború és béke</cím>
<szerző>Tolvaj M.</szerző>
</könyv>
</könyvek>
XSLT stíluslap (például, könyv.xsl):
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/könyvek">
<html>
<head>
<title>Könyvlista</title>
</head>
<body>
<h1>Könyvlista</h1>
<ul>
<xsl:apply-templates select="könyv"/>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="könyv">
<li>
<b><xsl:value-of select="cím"/></b>, Szerző: <xsl:value-of select="szerző"/>
</li>
</xsl:template>
</xsl:stylesheet>
Java-kód példa az átalakítás végrehajtására JAXP használatával:
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import java.io.*;
public class XSLTExample {
public static void main(String[] args) {
try {
// TransformerFactory létrehozása
TransformerFactory factory = TransformerFactory.newInstance();
// XSLT stíluslap betöltése
Source xslt = new StreamSource(new File("könyv.xsl"));
Transformer transformer = factory.newTransformer(xslt);
// Eredeti XML betöltése
Source xml = new StreamSource(new File("könyvek.xml"));
// Kimeneti eredmény meghatározása
Result result = new StreamResult(new File("output.html"));
// Átalakítás végrehajtása
transformer.transform(xml, result);
System.out.println("Átalakítás befejeződött. Az eredmény a output.html fájlban található.");
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
}
Az XSLT széles körben használják webfejlesztésben (HTML generálása XML-ből a megjelenítéshez), adatintegrációban és XML-üzenetek feldolgozásában.