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>
Vincent Quint |
65/69 |