在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 ......等等。
答案 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。