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>