I have this simple code:
<xsl:for-each select="GroupsServed">
<xsl:value-of select="."/>,<br/>
</xsl:for-each></font>
I'm trying to add a comma for each item added.
This has 2 flaws:
- Case of when there's only 1 item: the code would unconditionally add a comma.
- Case of when there's more than 1 item: the last item would have a comma to it.
What do you think is the most elegant solution to solve this?
I'm using XSLT 2.0
From stackoverflow
ShaChris23
-
If you're using XSLT 2.0, the canonical answer to your problem is
<xsl:value-of select="GroupsServed" separator=", " />On XSLT 1.0, the somewhat CPU-expensive approach to finding the last element in a node-set is
<xsl:if test="position() = last()" />ShaChris23 : thanks for the XSLT 1.0 approach. It worked fine on my 2.0Stobor : I shouldn't try to answer these questions via a phone. I've added the detail on the XSLT2.0 method, in case it wasn't clear earlier.From Stobor -
Final answer:
<xsl:for-each select="GroupsServed"> <xsl:value-of select="."/> <xsl:choose> <xsl:when test="position() != last()">,<br/></xsl:when> </xsl:choose> </xsl:for-each>From ShaChris23
0 comments:
Post a Comment