我有一个变量x
,它是一个数字。我有一条线。("<name>James</name>"
)我需要把这个句子编号x
打印几次。我能用一种简单的方法做吗?不复杂?
如果您使用的是XSLT2.0,那么您可以这样做。。。
<xsl:for-each select="for $i in 1 to $x return $i">
<name>James</name>
</xsl:for-each>
以下内容未经测试。。。
<xsl:call-template name="show">
<xsl:with-param name="text"><name>James</name></xsl:with-param>
<xsl:with-param name="count">50</xsl:with-param>
</xsl:call-template>
<xsl:template name="show">
<xsl:param name="text"/>
<xsl:param name="count"/>
<xsl:value-of select="$text"/>
<xsl:if test="number($count)>0">
<xsl:call-template name="show">
<xsl:with-param name="text" select="$text"/>
<xsl:with-param name="count" select="number($count)-1"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
更新为具有<name>
和</name>
。
这是上面工作的的XmlPlayground
您可以在样式表中添加以下内容:
<mydata>
<x/><x/><x/><x/> <!-- to print four times -->
</mydata>
然后
<xsl:for-each select="document()//mydata/x">
<name>James</name>
</xsl:for-each>
这利用了在XSLT程序中包含自己的数据,并通过document
函数访问数据的能力(没有参数表示样式表本身)。