Sobes.tech
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.