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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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