[XSLT] Position d'un noeud
Bonjour à tous,
fisrt time que je poste un message sur un forum, c'est vraiment que j'en ai besoin !
Alors, j'ai un fichier XML qui comprend plusieurs champ : En voici un bout de la structure :
Code:
1 2 3 4 5 6 7 8 9 10
| <champ id="Table1" genre="numerique">
<eti num="1">
<titre lang="fr">Oui</titre>
</eti>
</champ>
<champ id="table2" genre="numerique">
<eti num="1">
<titre lang="fr">Oui</titre>
</eti>
</champ> |
et donc, dans mon fichier XSL, je veux afficher mes noms de champs accompagnés du "num" de l'étiquette. Je fais donc une concaténation qui fonctionne sans soucis.
Pour traiter ces champs spéciaux ( ceux qui possèdent "une étiquette" ), je les mets dans une boucle :
Code:
1 2 3
| <xsl:template match="champ[@genre='numerique']/eti">
`<xsl:value-of select="concat(../@id,'__',@num)"/>` VALEUR <xsl:call-template name="Recursif"/>
</xsl:template> |
AINSI, vient mon soucis. Je veux qu'à la derniere boucle sur les champs ( TOUS LES CHAMPS ), on me mette un espace blanc, et que si c'est pas le dernier, on me mette une virgule :
Code:
1 2 3 4
| <xsl:template name="Recursif">
<xsl:if test = "not(position()=last())">,
</xsl:if><xsl:if test = "position()=last()"> </xsl:if>
</xsl:template> |
CEPENDANT, lorsque, je boucle sur <xsl:template match="champ[@genre='numerique']/eti">, et ben il me met tout le temps la virgule, même si c'est le dernier champ !!!!
si quelqu'un aurait une idée ! ça ne sera pas de refus ! S'il vous plait, bien sur ;)
Ellia