<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="ISO-8859-1" indent="yes"/>
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="liste_profs/prof">
<h1>Professeur <xsl:value-of select="nom" />, <xsl:value-of select="prenom" /></h1>
<xsl:for-each select="liste_cours/cours">
<xsl:sort select="nom"/>
<ul>
<li><strong>Sigle: <xsl:value-of select="sigle" /></strong>;</li>
<li><strong>Nom: <em><xsl:value-of select="nom" /></em></strong>.</li>
</ul>
</xsl:for-each>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Ce document XSLT décrit des règles de filtrage et de sélection de données dans un autre document XML (par exemple celui-ci). Les documents XSLT partagent entre autres le créneau de la gestion de la forme des documents avec les feuilles CSS.
Il est possible, en appliquant des règles XSLT à un document XML, de sélectionner un sous-ensemble de données dans le document source puis de leur appliquer automatiquement des règles de formatage et de présentation. Le volume de données peut changer sans que les règles de présentation ne varient, ce qui donne beaucoup de souplesse aux conceptrices et aux concepteurs des applications Web.
Ceci permet à la fois une séparation claire du contenu et de la forme, mais permet aussi de varier très aisément les présentations d'un document selon les besoins des individus ou de l'application.
Remarquez la flexibilité de la norme XML par laquelle on exprime à la fois les données et les règles qui s'y appliquent. Formater un document par XSLT est un exemple simple mais concret de la force de cette approche.