Traitement différent pour premier élément d'une boucle
Bonjour,
J'ai un XML qui ressemble à peu près à ça :
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| <Document>
<Objets>
<Objet>
<Types>
<Type>
<Libelle>Nom</Libelle>
<Valeur>toto</Valeur>
</Type>
<Type>
<Libelle>Ordre</Libelle>
<Valeur>3</Valeur>
</Type>
</Types>
</Objet>
<Objet>
<Types>
<Type>
<Libelle>Nom</Libelle>
<Valeur>titi</Valeur>
</Type>
<Type>
<Libelle>Ordre</Libelle>
<Valeur>2</Valeur>
</Type>
</Types>
</Objet>
<Objet>
<Types>
<Type>
<Libelle>Nom</Libelle>
<Valeur>tutu</Valeur>
</Type>
<Type>
<Libelle>Ordre</Libelle>
<Valeur>7</Valeur>
</Type>
</Types>
</Objet>
<!-- [...] -->
</Objets>
</Document> |
J'aimerai à l'issue d'une transformation XSLT obtenir quelque chose ce ce style :
Citation:
titi, toto, tutu
Il s'agit des "Noms" triés selon leur "Ordre", séparés d'une virgule.
Problème classique : je ne veux ni de virgule avant le premier élément, ni de virgule après le dernier élément.
C'est ici que je bloque.
Comment faire pour différencier le premier (ou le dernier) élément des autres dans une boucle (for-each) sachant qu'elle est triée (sort) ?
Pour l'instant ma feuille XSLT ressemble à ça, mais j'ai bien sûr une virgule à la fin.
Code:
1 2 3 4 5
| <xsl:for-each select="//Objet">
<xsl:sort select="Types/Type[Libelle= 'Ordre']/Valeur" order="ascending" data-type="number"/>
<xsl:value-of select="Types/Type[Libelle= 'Nom']/Valeur"/>
<xsl:text>, </xsl:text>
</xsl:for-each> |