Sobes.tech
Junior

Was ist XSLT?

sobes.tech KI

Antwort von AI

XSLT (eXtensible Stylesheet Language Transformations) ist eine Sprache zur Transformation von XML-Dokumenten. Sie wird verwendet, um XML in andere Formate umzuwandeln, z.B. in HTML, ein anderes XML oder einfachen Text, wobei Regeln angewendet werden, die in einem XSLT-Stylesheet beschrieben sind.

Hauptkonzepte:

  • XSLT-Stylesheet: XML-Dokument, das die Transformationsregeln enthält.
  • Templates (Vorlagen): Hauptblöcke von Regeln. Entsprechen Elementen oder Attributen des Quell-XML und bestimmen, wie sie transformiert werden.
  • XPATH: Abfragesprache zur Auswahl von Knoten in einem XML-Dokument. Wird in XSLT verwendet, um zu bestimmen, welche Teile des XML angewendet werden sollen.
  • XSLT-Prozessor: Programm, das die Transformation durchführt, indem es das Quell-XML und das XSLT-Stylesheet liest und das Ergebnis generiert.

Java bietet integrierte Unterstützung für XSLT über JAXP (Java API for XML Processing).

Beispiel für eine einfache XSLT-Transformation von XML in HTML:

Quell-XML:

<bücher>
  <buch id="1">
    <titel>Der Meister und Margarita</titel>
    <autor>Bulgakov M.</autor>
  </buch>
  <buch id="2">
    <titel>Krieg und Frieden</titel>
    <autor>Tolstoi L.</autor>
  </buch>
</bücher>

XSLT-Stylesheet (z.B. buch.xsl):

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/bücher">
    <html>
      <head>
        <title>Liste der Bücher</title>
      </head>
      <body>
        <h1>Liste der Bücher</h1>
        <ul>
          <xsl:apply-templates select="buch"/>
        </ul>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="buch">
    <li>
      <b><xsl:value-of select="titel"/></b>, Autor: <xsl:value-of select="autor"/>
    </li>
  </xsl:template>
</xsl:stylesheet>

Java-Code zur Ausführung der Transformation mit JAXP:

import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import java.io.*;

public class XSLTExample {

    public static void main(String[] args) {
        try {
            // TransformerFactory erstellen
            TransformerFactory factory = TransformerFactory.newInstance();

            // XSLT-Stylesheet laden
            Source xslt = new StreamSource(new File("buch.xsl"));
            Transformer transformer = factory.newTransformer(xslt);

            // Quell-XML laden
            Source xml = new StreamSource(new File("bücher.xml"));

            // Ausgabestrom definieren
            Result result = new StreamResult(new File("output.html"));

            // Transformation durchführen
            transformer.transform(xml, result);

            System.out.println("Transformation abgeschlossen. Ergebnis in output.html gespeichert.");

        } catch (TransformerConfigurationException e) {
            e.printStackTrace();
        } catch (TransformerException e) {
            e.printStackTrace();
        }
    }
}

XSLT wird häufig in der Webentwicklung (Erzeugung von HTML aus XML zur Anzeige), bei der Datenintegration und bei der Verarbeitung von XML-Nachrichten verwendet.