xsl表示每个数字+ 1

时间:2014-09-26 16:01:14

标签: xslt foreach

在for-each Im中使用每个循环发送1,2,3,4。我希望计数从2开始而不是1.这可能吗?

<xsl:for-each select="BidFeeList/BidFee">
    <xsl:call-template name="chargeField">
        <xsl:with-param name="fieldIndex"><xsl:number/></xsl:with-param>
    </xsl:call-template>
</xsl:for-each>

因此,每个人都会调用chargeField模板2,然后3,4,5 ......等等。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您有 n BidFeeList/BidFee项,并且您希望使用参数{调用chargeField模板 n 次{1}}设置为2,3,..., n +1。这可以通过以下XSLT片段实现:

fieldIndex

说明:XPath函数<xsl:for-each select="BidFeeList/BidFee"> <xsl:call-template name="chargeField"> <xsl:with-param name="fieldIndex" select="position() + 1"/> </xsl:call-template> </xsl:for-each> 返回上下文位置,其中XSLT术语是当前节点的从一开始的索引当前节点列表。在position()中,当前节点列表设置为已处理节点列表,当前节点设置为当前处理的节点。因此,xsl:for-each本身会产生1,2,......, n position()负责计算从2到 n +1。