Skip to content

Mis en ligne par admin - 4 juillet 2007 - Astuces Diverses

Simuler une variable en XSLT

XSL permet de nombreuses choses… Mais en bon langage de pattern matching, XSLT ne permet pas de gérer des variables.

Enfin si, il existe en XSL des « variables », mais lorsque l’on y regarde de plus près, ces variables sont à vrai dire, des constantes !

Aussi, comment doit-on faire lorsque l’on doit effectuer une boucle, ou encore effectuer un traitement répété et conditionnel sur une variable (exemple : extraire d’une string, le pattern après la dernière « , »).

La réponse est simple, on contournera le problème, en utilisant une fonction appelée avec paramètre.

Exemple pour extraire le pattern d’une string après la dernière « , ». Si mastring est la string en question.

<xsl:template name= »getLastPattern »>
<xsl:param name= »mystring » select= »0″/>
<xsl:choose>
<xsl:when test= »contains($mystring,’,’) »>
<xsl:call-template name= »getLastPattern »>
<xsl:with-param name= »mystring » select= »substring-after($mystring,’,’) »/>
</xsl:call-template>
</xsl:when>
<xsl:when test= »not(contains($mystring,’:’)) »>
Afficher Pattern : <xsl:value-of select= »$mystring »/>
</xsl:when>
</xsl:choose>
</xsl:template>

Il ne reste plus qu’à « appeler » la fonction à l’aide d’un <xsl:call-template name= »getLastPattern »> en ajoutant le paramètre maString.
</xsl:call-template>

Articles similaires

Les articles suivants abordent des thèmes communs.

Commentaires

Partagez vos remarques.

Il n'y a pas de commentaires pour cet article.