XSLT中的反迭代
我想修改XSLT中的一些现有代码,以便能够迭代和显示计数器 这是代码,其中“Rank”必须是计数器,我不能在其他地方实现,因为排序是在这里完成的 我不知道我的问题是否清楚,但这里有一些代码:XSLT中的反迭代,xslt,sorting,iterator,counter,Xslt,Sorting,Iterator,Counter,我想修改XSLT中的一些现有代码,以便能够迭代和显示计数器 这是代码,其中“Rank”必须是计数器,我不能在其他地方实现,因为排序是在这里完成的 我不知道我的问题是否清楚,但这里有一些代码: <xsl:for-each select="Player"> <xsl:sort select="Points" order="descending" data-type="number"/> <xsl:sort select="G" order="de
<xsl:for-each select="Player">
<xsl:sort select="Points" order="descending" data-type="number"/>
<xsl:sort select="G" order="descending" data-type="number"/>
<xsl:sort select="A" order="descending" data-type="number"/>
<xsl:sort select="GP" order="ascending" data-type="number"/>
<tr bgcolor="#E2EFED" border="0">
<td align="center"><xsl:value-of select="Rank"/></td>
<td align="center"><xsl:value-of select="Name"/></td>
<td align="center"><xsl:value-of select="Team"/></td>
</tr>
</xsl:for-each>
您可以使用XPath position()函数 换言之,只要改变:
<td align="center"><xsl:value-of select="Rank"/></td>
到
下面是一个完整的示例,说明如何执行此操作:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/*">
<xsl:for-each select="*">
<xsl:value-of select="concat('
', position(), '. ', name())"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
1. a
2. b
3. c
4. d
5. e
将您的代码修改为:
<t>
<a/>
<b/>
<c/>
<d/>
<e/>
</t>
<xsl:for-each select="Player">
<xsl:sort select="Points" order="descending" data-type="number"/>
<xsl:sort select="G" order="descending" data-type="number"/>
<xsl:sort select="A" order="descending" data-type="number"/>
<xsl:sort select="GP" order="ascending" data-type="number"/>
<tr bgcolor="#E2EFED" border="0">
<td align="center">
<xsl:value-of select="position()"/>
</td>
<td align="center">
<xsl:value-of select="Name"/>
</td>
<td align="center">
<xsl:value-of select="Team"/>
</td>
</tr>
</xsl:for-each>
问得好,+1。请参阅我的答案,了解一个简单完整的示例和解决方案。:)
<xsl:for-each select="Player">
<xsl:sort select="Points" order="descending" data-type="number"/>
<xsl:sort select="G" order="descending" data-type="number"/>
<xsl:sort select="A" order="descending" data-type="number"/>
<xsl:sort select="GP" order="ascending" data-type="number"/>
<tr bgcolor="#E2EFED" border="0">
<td align="center">
<xsl:value-of select="position()"/>
</td>
<td align="center">
<xsl:value-of select="Name"/>
</td>
<td align="center">
<xsl:value-of select="Team"/>
</td>
</tr>
</xsl:for-each>