Comment puis-je générer une liste séparée par des virgules avec XSLT/XPath?

Compte tenu de ces données XML:

<root> 
<item>d'apple</item> 
<item>orange</item> 
<item>banane</item> 
</root> 

Je peux utiliser cette XSLT balisage:

... 
<xsl:for-each select="root/item"> 
<xsl:value-of select="."/>, 
</xsl:for-each> 
... 

pour obtenir ce résultat:

pomme, orange, banane,

mais comment puis-je produire une liste où la dernière virgule n'est pas présent? Je suppose qu'il peut être fait de faire quelque chose le long des lignes de:

... 
<xsl:for-each select="root/item"> 
<xsl:value-of select="."/> 
<xsl:if test="...">,</xsl:si> 
</xsl:for-each> 
... 

mais ce qui devrait le test d'expression?

J'ai besoin de quelques façon de déterminer combien de temps la liste est et où je suis actuellement dans la liste, ou, à défaut, si je suis en train de traiter le dernier élément dans la liste (ce qui signifie que je ne se soucient pas combien de temps il est ou de ce que la position actuelle est).