Das Zielformat sei in diesem Beispiel die folgende HTML-Datei:
<html>
<head>
<title>Die Firma Klimbim Inc.</title>
</head>
<body>
<h1>Abteilung Entwicklung</h1>
<ul>
<li>Heid, Joern
<li>Middendorf, Stefan
<li>Singer, Reiner
</ul>
<h1>Abteilung Vertrieb</h1>
<ul>
<li>Mueller, George
</ul>
</body>
</html>
Um die Transformation allgemein zu beschreiben (die Anzahl der in der XML-Datei angegebenen Abteilungen und Mitarbeiter soll beliebig sein), müssen Regeln dafür aufgestellt werden, was der Prozessor mit einem gefundenen Element machen soll. Diese Regeln (Templates) werden in einer XML-Datei definiert, die entsprechende XSLT-Befehle verwendet. Diese Befehle werden durch die Zuordnung zu einem speziellen Namensraum gekennzeichnet.
Das folgende Stylesheet liefert die gewünschte Transformation in das zuvor gezeigte HTML-Dokument. Da das Stylesheet selbst im XML-Format vorliegt, muss es ein wohlgeformtes XML-Dokument sein. Daher müssen HTML-Elemente, bei denen üblicherweise nur das Start-Tag angegeben wird (z. B. <br>) XML-konform im Stylesheet eingetragen werden (<br/>).
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="firma">
<html>
<head>
<title>
<xsl:value-of select="@name"/>
</title>
</head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="abteilung">
<h1><xsl:value-of select="@name"/></h1>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="mitarbeiter">
<li>
<xsl:value-of select="@nachname"/>,
<xsl:value-of select="@vorname"/>
</li>
</xsl:template>
</xsl:stylesheet>
Die Daten des XML-Dokumentes können über
<xsl:value-of select="@name"/>
abgefragt werden. In diesem Beispiel wird der Wert des Attributs name ausgegeben. Attribute werden wie in der gezeigten Regel mit dem @-Zeichen referenziert. Standardmäßig wird dabei das Attribut herangezogen, das zu dem Element gehört, auf das sich die jeweilige Regel bezieht.