XSLT1中的“标准”

时间:2013-02-06 09:50:18

标签: xslt xslt-1.0

我有一个带参数的模板。我该如何打印n次?

n是参数的值。我必须使用XSLT 1.0 ......

有一个更清洁的方式:

<xsl:for-each select="//*[position() &lt;= $count]">&#x9;</xsl:for-each>

1 个答案:

答案 0 :(得分:2)

如果您的源XML具有$count元素,那么您的方法将有效,但我不认为这是一个非常好的方法。这更详细,但我建议定义一个这样的模板:

 <xsl:template name="RepeatValue">
    <xsl:param name="times" />
    <xsl:param name="value" />

    <xsl:if test="$times > 0">
        <xsl:value-of select="$value" />
        <xsl:call-template name="RepeatValue">
           <xsl:with-param name="times" select="$times - 1" />
           <xsl:with-param name="value" select="$value" />
        </xsl:call-template>
    </xsl:if>
</xsl:template>

然后您将使用以下方法调用此模板:

<xsl:call-template name="RepeatValue">
   <xsl:with-param name="times" select="$count" />
   <xsl:with-param name="value" select="'&#x9;'" />
</xsl:call-template>