我有这个简单的代码:
<xsl:for-each select="GroupsServed">
<xsl:value-of select="."/>,<br/>
</xsl:for-each></font>
我正在尝试为添加的每个项添加逗号。
这有两个缺陷:
您认为解决此问题的最佳解决方案是什么?
我正在使用XSLT 2.0
答案 0 :(得分:79)
如果您使用的是XSLT 2.0,那么您的问题的典型答案就是
<xsl:value-of select="GroupsServed" separator=", " />
在XSLT 1.0上,查找节点集中最后一个元素的CPU有点昂贵的方法是
<xsl:if test="position() = last()" />
答案 1 :(得分:27)
最终答案:
<xsl:for-each select="GroupsServed">
<xsl:value-of select="."/>
<xsl:choose>
<xsl:when test="position() != last()">,<br/></xsl:when>
</xsl:choose>
</xsl:for-each>
答案 2 :(得分:2)
<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>