[XSLT] probleme avec if et variable
Bonjour je veux fixer un espace variable en fonction d'un nombre de noeuds.
J'utilise une boucle if pour fixer cette variable.
Ca ne marche pas !!!
Si quelqu'un a la solution...
Code:
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 26 27
| <!-- Personne en cause -->
<xsl:template match="GR050501LIST" priority="1">
<!-- Découpe de bloc en deux blocs de 95 mm -->
<xsl:variable name = "taille">mm</xsl:variable>
<xsl:variable name = "nbNoeuds" select="count(GR050501)" />
<xsl:variable name = "hauteur" select="2"/>
<xsl:variable name = "toto"/>
<xsl:if test="count(GR050501)=$nbNoeuds">
<xsl:variable name = "tailleInit" select = "1.2" />
<xsl:variable name = "hauteur" select = "concat($tailleInit,$taille)" />
</xsl:if>
<fo:table table-layout="fixed" space-after="{$hauteur}" >
<fo:table-column column-width="95mm" />
<fo:table-column column-width="95mm" />
<fo:table-body>
<xsl:call-template name="CreationLigneTitrePaveBlock">
<xsl:with-param name="LibellePave"><!--Personne(s) en cause--><xsl:value-of select="$hauteur"></xsl:value-of></xsl:with-param>
<xsl:with-param name="BlockId">sec1-10</xsl:with-param>
</xsl:call-template> |
Merci
Problème avec if et variable
Le problème est résolu.
Il n'est pas possible d'employer un if à cet endroit du programme.
J'ai donc fait un count du noeud sur la position 2. (count(GR050501[2])).
Il me renvoie donc 0 si il n'y a qu'un seul noeud ou sinon 1 quel que soit le nombre de noeuds présents. Il suffit de gérer après la valeur de la variable grace à ce résultat.