J'ai ce code simple:
<xsl:for-each select="GroupsServed">
<xsl:value-of select="."/>,<br/>
</xsl:for-each></font>
J'essaie d'ajouter une virgule pour chaque élément ajouté.
Cela a 2 défauts:
Selon vous, quelle est la solution la plus élégante pour résoudre ce problème?
J'utilise XSLT 2.0
Si vous utilisez XSLT 2.0, la réponse canonique à votre problème est
<xsl:value-of select="GroupsServed" separator=", " />
Sur XSLT 1.0, l'approche un peu coûteuse en CPU pour trouver le dernier élément d'un ensemble de nœuds est
<xsl:if test="position() = last()" />
Réponse finale:
<xsl:for-each select="GroupsServed">
<xsl:value-of select="."/>
<xsl:choose>
<xsl:when test="position() != last()">,<br/></xsl:when>
</xsl:choose>
</xsl:for-each>
<xsl:variable name="GROUPS_SERVED_COUNT" select="count(GroupsServed)"/>
<xsl:for-each select="GroupsServed">
<xsl:value-of select="."/>
<xsl:if test="position() < $GROUPS_SERVED_COUNT">
,<br/>
</xsl:if>
</xsl:for-each></font>