Voilà ci-dessous une portion du template:
Je voudrais assigner comme value à ma variable "nb", le nombre d'éléments de la liste "tokenizer" pis ensuite au lieu d'avoir xsl:if test="$counter < 4", je voudrais avoir xsl:if test="$counter <= $nb. Ca parait tout simple mais en fait ça marche pas. Je tombe dans une loop infinie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 <xsl:template name="recursive" match= "SpecificSection"> <xsl:param name="counter" /> <xsl:variable name="nb"/> <xsl:if test="@type='split'"> <xsl:variable name="separator" select="@separator"/> <xsl:for-each-group select="//*" group-by="@level"> <xsl:variable name="level" select="tokenize(@level, ';')"/> <xsl:element name="{$level[2]}" namespace="{namespace-uri()}"> <xsl:for-each select="current-group()"> <xsl:variable name="tokenizedSample" select="tokenize(current(), $separator)"/> <xsl:element name="{name(.)}" namespace="{namespace-uri()}"> <xsl:value-of select="$tokenizedSample[$counter]" ></xsl:value-of> </xsl:element> </xsl:for-each> </xsl:element> <xsl:if test="$counter < 4"> <xsl:call-template name="recursive"> <xsl:with-param name="counter" select="$counter+1"/> </xsl:call-template> </xsl:if> </xsl:for-each-group> </xsl:if> </xsl:template>
Partager