|
|
On peut choisir un fragment de résultat parmi plusieurs options avec
l'instruction choose
<xsl:choose>
<!-- Content: (xsl:when+, xsl:otherwise?) -->
</xsl:choose>
<xsl:when test="boolean-expression">
<!-- Content: template -->
</xsl:when>
<xsl:otherwise>
<!-- Content: template -->
</xsl:otherwise>
Quand une instruction choose est
exécutée, le test de chaque élément fils
when est évalué et on
applique le template du premier when dont le test retourne true. Le
template de l'élément fils otherwise est appliqué si aucun élément when ne s'applique.
Exemple : numérotation des items d'une liste HTML en chiffres arabes, en lettres ou en chiffres romains selon la profondeur d'imbrication
<xsl:template match="orderedlist">
<ol>
<xsl:variable name="level"
select="count(ancestor::orderedlist) mod 3"/>
<xsl:choose>
<xsl:when test='$level=1'>
<xsl:attribute name="type">i</xsl:attribute>
</xsl:when>
<xsl:when test='$level=2'>
<xsl:attribute name="type">a</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="type">1</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:apply-templates/>
</ol>
</xsl:template>
23/27 |