在xslt中多次打印相同的值

时间:2012-07-11 15:30:41

标签: xslt xslt-1.0 xslt-2.0

我有变量x这是一个数字。我有一条线。 ("<name>James</name>")我需要打印这个句号x次。我可以轻松地完成吗?没有复杂?

3 个答案:

答案 0 :(得分:2)

如果您使用的是XSLT 2.0,那么您可以这样做......

<xsl:for-each select="for $i in 1 to $x return $i">
 <name>James</name>
</xsl:for-each>

答案 1 :(得分:1)

以下是未经测试的......

<xsl:call-template name="show">
  <xsl:with-param name="text">&lt;name&gt;James&lt;/name&gt;</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 of the above working

答案 2 :(得分:0)

您可以在样式表中的某处添加以下内容:

<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函数访问它(没有参数表示样式表本身)。