Source de sujets2html-1.xsl
<?xml version="1.0" ?>
<!-- -*- coding: utf-8 -*- -->
<xsl:stylesheet version="1.0">
<xsl:output method="xml" encoding="utf-8" indent="yes" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" />
<!-- Les paramètres -->
<xsl:param name="cible" />
<xsl:param name="refsujet" />
<!-- Traitement de la racine -->
<xsl:template match="/sujets">
<html>
</xsl:template><head>
<title>Sujets ID</title>
<link rel="stylesheet" type="text/css" href="sujets.css" />
</head><body>
</html><div class="contenu">
</body><p>
Cette page est produite dans le cadre d'exercices sur XSLT. Son contenu n'est peut-être pas pertinent.
</p><ul>
<li>
retour aux <a href="https://fabien-torre.fr/Enseignement/tp/XML/Corrections/#xsltfilms">solutions des exercices XML</a>
</li><li>
retour aux <a href="https://fabien-torre.fr/Enseignement/tp/XML/XSLT/">exercices XSLT</a>
</li><li>
</ul>retour à la page de <a href="https://fabien-torre.fr/">Fabien Torre</a>
</li><xsl:choose>
<!-- tous les sujets -->
<xsl:when test="$cible='tout'">
<h1>
Tous les sujets abordés pendant le Master Informatique et Document
</h1><ul>
</xsl:when><xsl:apply-templates select="sujet[not(@pere)]" mode="tout" />
</ul>
<!-- un seul sujet -->
<xsl:when test="$cible='unsujet'">
<xsl:apply-templates select="sujet[@id=$refsujet]" mode="unseul" />
</xsl:when>
<!-- erreur -->
<xsl:otherwise>
</xsl:choose><h1>Page vide</h1>
</xsl:otherwise><hr />
<div class="logos">
</div><a href="https://fabien-torre.fr/">
<img src="https://fabien-torre.fr/Images/FabienTorre.png" alt="Fabien Torre" />
</a><a href="http://validator.w3.org/check/referer">
<img src="https://fabien-torre.fr/Images/valid-xhtml10.png" alt="Valid XHTML 1.0!" />
</a><a href="http://jigsaw.w3.org/css-validator/validator?uri=https://fabien-torre.fr/Enseignement/tp/XML/XSLT/sujets-HTML/sujets.css">
</div><img src="https://fabien-torre.fr/Images/valid_css.png" alt="Valid CSS!" />
</a>
<!-- Règles pour la sortie des URLs -->
<xsl:template name="faireunlien">
<xsl:param name="adresse" />
<xsl:param name="texte" />
<a href="{$adresse}">
</xsl:template><xsl:value-of select="$texte" />
</a><xsl:template match="url">
<li>
</xsl:template><xsl:call-template name="faireunlien">
</li><xsl:with-param name="texte" select="." />
<xsl:with-param name="adresse" select="@href" />
</xsl:call-template>
<!-- Sortie des sujets -->
<xsl:template match="sujet" mode="tout">
<li>
</xsl:template><xsl:value-of select="@titre" />
<xsl:if test="count(url) > 0">
<ul>
</xsl:if><xsl:apply-templates select="./url" />
</ul><xsl:copy-of select="description/*" />
<xsl:variable name="idsujet" select="@id" />
<xsl:if test="//sujet[@pere=$idsujet]">
</li><ul>
</xsl:if><xsl:apply-templates select="//sujet[@pere=$idsujet]" mode="tout">
</ul><xsl:sort select="@titre" order="ascending" />
</xsl:apply-templates><xsl:template match="sujet" mode="liste">
<li>
</xsl:template><xsl:call-template name="faireunlien">
</li><xsl:with-param name="texte" select="@titre" />
<xsl:with-param name="adresse" select="concat(@id,'.html')" />
</xsl:call-template><xsl:template match="sujet" mode="ascendance">
<xsl:if test="@pere">
<xsl:variable name="idpere" select="@pere" />
<xsl:apply-templates select="//sujet[@id=$idpere]" mode="ascendance" />
<xsl:text> > </xsl:text>
</xsl:if><xsl:call-template name="faireunlien">
</xsl:template><xsl:with-param name="texte" select="@titre" />
<xsl:with-param name="adresse" select="concat(@id,'.html')" />
</xsl:call-template><xsl:template match="sujet" mode="unseul">
</xsl:stylesheet><h1>
<xsl:value-of select="@titre" />
</h1><xsl:if test="@pere">
<div class="chemin">
</xsl:if><xsl:variable name="idpere" select="@pere" />
<xsl:apply-templates select="//sujet[@id=$idpere]" mode="ascendance" />
</div><xsl:if test="count(url) > 0">
<ul>
</xsl:if><xsl:apply-templates select="./url" />
</ul><xsl:copy-of select="description/*" />
<xsl:variable name="idsujet" select="@id" />
<xsl:if test="//sujet[@pere=$idsujet]">
</xsl:template><ul>
</xsl:if><xsl:apply-templates select="//sujet[@pere=$idsujet]" mode="liste">
</ul><xsl:sort select="@titre" order="ascending" />
</xsl:apply-templates>