我在我的for循环中
<xsl:for-each select="Alerts/AlertItem">
和
<xsl:value-of select="position()" />
获取当前位置,索引。所以每次给我1,2和3假设有3个项目。
在这个for循环中,我如何获得3的总数?而不是指数?
在for循环之前我可以得到它:
<xsl:value-of select="count(descendant::AlertItem[Code='2'])" />
但在循环内我尝试过:
<xsl:value-of select="count(parent::AlertItem[Code='2'])" />
<xsl:value-of select="count(ancestor::AlertItem[Code='2'])" />
<xsl:value-of select="count(AlertItem[Code='2'])" />
全部返回0
答案 0 :(得分:1)
您可以计算前一个兄弟节点(或之前节点)。不知道为什么你需要这个,它效率不高。
另请注意,last()
函数将返回当前处理的节点集的总计数(总体而言,不取决于当前处理的节点的位置)。
答案 1 :(得分:0)
在for-each
指令之前,使用所需信息定义变量:
<xsl:variable name="total-count" select="count(Alerts/AlertItem)"/>
<xsl:for-each select="Alerts/Alertitem">
<xsl:message>Now processing item <xsl:value-of select="position()"/>
of <xsl:value-of select="$total-count"/>
...
</xsl:for-each>