Xml 仅在xsl:for每个循环的第一次迭代中添加xsl:param

Xml 仅在xsl:for每个循环的第一次迭代中添加xsl:param,xml,xslt,Xml,Xslt,只能在循环的第一次迭代中添加xls:param我正在使用xsl 1.0版。如果我们有: <TestObject> <xsl:for-each select="TestObject"> <item> <ParamValue> <xsl:value-of select='$Test'/> </ParamValue>

只能在循环的第一次迭代中添加
xls:param
我正在使用xsl 1.0版。如果我们有:

  <TestObject>
    <xsl:for-each select="TestObject">
      <item>
        <ParamValue>
          <xsl:value-of select='$Test'/>
        </ParamValue>            
        <TEXT>
          <xsl:value-of select="Text" />
        </TEXT>
    </xsl:for-each>
  </TestObject>
该函数有效地为您提供了迭代次数:

  <TestObject>
    <xsl:for-each select="TestObject">
      <item>
        <ParamValue>
          <xsl:if test="position() = 1"><xsl:value-of select='$Test'/></xsl:if>
        </ParamValue>            
        <TEXT>
          <xsl:value-of select="Text" />
        </TEXT>
    </xsl:for-each>
  </TestObject>


(我之所以说“有效”,是因为XSLT处理器不必使用顺序循环为每个实现
。XSLT是一种功能性语言,没有副作用,因此处理器可以自由地以任何顺序甚至并行方式处理节点,只要它以正确的方式组装最终输出。位置()函数返回当前正在处理的节点的位置,在for each
选择的节点列表中。

谢谢,伙计,我以前用过这个,但我完全忘记了!
  <TestObject>
    <xsl:for-each select="TestObject">
      <item>
        <ParamValue>
          <xsl:if test="position() = 1"><xsl:value-of select='$Test'/></xsl:if>
        </ParamValue>            
        <TEXT>
          <xsl:value-of select="Text" />
        </TEXT>
    </xsl:for-each>
  </TestObject>