XSLT

XSLT steht für Extensible Stylesheet Language Transformations und ist eine funktionale Programmiersprache, die maßgeblich zur Transformation von XML-Dokumente in andere XML-Dokumente oder Datenformate wie HTML, CSV oder JSON verwendet wird. In Bezug auf die Verarbeitung von XML ist XSLT anderen Programmiersprachen überlegen. Das liegt nicht zuletzt daran, dass XSLT die Abfragesprache XPath unterstützt, mit der man sich von einer Stelle im XML-Dokument an jede beliebige andere Stelle navigieren kann.

XSLT wurde 1998 vom World Wide Web Consortium (W3C) als Standard (W3C Recommendation) verabschiedet, allerdings war die Funktionalität der ersten Version noch recht eingeschränkt, was anspruchsvolle Aufgaben unnötig kompliziert machte. Die im Jahre 2001 und 2017 erschienenen Versionen 2.0 und 3.0 ergänzten zahlreiche sinnvolle Funktionen und Programmierkonzepte, so dass heute das Programmieren mit XSLT als effizient und komfortabel gilt.

Der XSLT-Prozessor liest das XML-Dokument ein, wendet das XSLT-Stylesheet darauf an und erstellt das Ausgabedokument.

Ein XSLT-Stylesheet basiert im Wesentlichen auf Templates, welche mit XPath verschiedene Punkte im XML-Dokument auswählen und bearbeiten können. Das Ergebnis des Templates wird dann an dieselbe Stelle im Ausgabe-XML-Dokument zurückgeschrieben. Hier ist ein kleines XSLT-Beispiel mit zwei Templates. Das erste Template erzeugt an oberster Stelle des DocBook-Dokuments die typische HTML-Grundstruktur. Das zweite Template pickt sich den DocBook-Kapiteltitel heraus und erstellt daraus eine HTML-Überschrift.

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns="http://www.w3.org/1999/xhtml" 
    xpath-default-namespace="http://docbook.org/ns/docbook"
    version="3.0">
  
  <xsl:template match="/">
    <html>
      <head>
        <title>My fresh HTML document</title>
      </head>
      <body>
        <xsl:apply-templates/>
      </body>
    </html>
  </xsl:template>
  
  <xsl:template match="chapter/title">
    <h1>
      <xsl:apply-templates/>
    </h1>
  </xsl:template>
  
</xsl:stylesheet>

XSLT steht auch in vielen anderen Programmiersprachen als Werkzeug zur Verfügung. So kann man in Java, .NET, C/C++, Python, PHP und NodeJS XSLT-Stylesheets ausführen. XSLT kann auch im Web-Browser genutzt werden: Zwar unterstützen alle modernen Browser heutzutage nur das veraltete XSLT 1.0 nativ, aber mit externen JavaScript-Bibliotheken lässt sich auch XSLT 3.0 verwenden.

Wegen des eindeutigen Fokus auf XML-Verarbeitung gehört XSLT heute sicher nicht zu den populärsten Programmiersprachen. Aber in diesem Punkt gibt es auch keine andere Programmiersprache, die XSLT das Wasser reichen kann.