[XSLT] déclaration et utilisation de variable et calcul dans un template
Bonjour,
J'ai un soucis dans le code suivant :
Code:
1 2 3 4 5 6 7 8 9
| <xsl:template name="elementRes">
<xsl:param name="compteur" />
<xsl:param name="hasEntete" />
<xsl:if test="$hasEntete = 'true'">
<entete></entete>
</xsl:if>
<xsl:element name = "{concat('Z',$compteur)}">
</xsl:element>
</xsl:template> |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <xsl:template match="/Transaction/Res">
<xsl:variable name="nbElements" select="number(Nb_Element_Par_Page)">
</xsl:variable>
<xsl:for-each select="/Transaction/listePrix/prix">
<xsl:call-template name="elementRes">
<xsl:variable name="compteurVar" select="position()">
</xsl:variable>
<xsl:with-param name="compteur" select="$compteurVar" />
<xsl:choose>
<xsl:when test="mod(nbElements , compteurVar - 1) = 0">
<xsl:with-param name="hasEntete" select="'true'"/>
</xsl:when>
<xsl:otherwise>
<xsl:with-param name="hasEntete" select="'false'"/>
</xsl:otherwise>
</xsl:choose>
</xsl:call-template>
</xsl:for-each>
</xsl:template> |
Je définis une variable nbElements qui va matcher le nombre écrit entre les balises <Nb_Element_Par_Page> et </Nb_Element_Par_Page> (élement fils de /Transaction/Res).
Je boucle sur chaque prix, et pour chacun d'eux :
- je récupère dans compteurVar la position de celui-ci.
- je veux appeler un template elementRes avec certains paramètres (compteur et hasEntete).
Je constate que compteur est appelé correctement car j'arrive pour chaque élément à avoir les balises Z1, Z2...mais qaudn j'essaie d'appeler "hasEntete" avec true ou false, selon ma condition, j'ai une erreur de compilation de ma feuille xsl.
Une idée du soucis?
Merci :-)