最近在一个项目中用到了XSLT,目的是将返回的XML数据记录通过XSL转换为HTML,在for-each的循环中取得当前记录的位置,通过实践,找到了解决的办法,主要是使用xsl的position函数
1 <xsl:for-each select="QRoleInline-list/QRoleInline">
2 <xsl:if test="not(position() = 1)"><xsl:text>,</xsl:text></xsl:if><xsl:value-of select="@roleName"/>
3 </xsl:for-each>
使用position函数可以取得当前行在循环中的位置,从1开始。上述代码是判断如果位置为第一个, 则需要加逗号。
还有一个函数current()是负责取到当前节点对象的。