在xslt中多次打印相同的值



我有一个变量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">&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

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

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

相关内容

  • 没有找到相关文章

最新更新