Asp.NET Tutorials
Home > XML应用 > 在XSL里执行类似for(i=0;i<n;i++)的循环
在XSL里执行类似for(i=0;i<n;i++)的循环

在xsl里执行类似for(i=0;i<n;i++)的循环


作者:孟宪会 出自:【孟宪会之精彩世界】

--------------------------------------------------------------------------------
 
在XSL里,可以实现与一般编程语言类似的for循环的功能,下面就是实现这一功能的例子:

查看例子

xslloop.xml

<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="XSLLoop.xsl"?>
<net_lover>孟子E章</net_lover>

xslloop.xsl

<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:copyRight="http://xml.sz.luohuedu.net/">
  <!-- 下面的三个变量可以由XML中取得,做为例子,这里直接定义了初始值 -->
  <!-- 定义初始值 -->
  <xsl:variable name="varStart" select="0"/>
  <!-- 定义结束值 -->
  <xsl:variable name="varEnd" select="35"/>
  <!-- 定义循环步长 -->
  <xsl:variable name="varStep" select="2"/>
  <xsl:template match="/">
    <xsl:call-template name="MyLoopFun">
      <xsl:with-param name="varStart" select="$varStart">
      </xsl:with-param>
    </xsl:call-template>
  </xsl:template>
  <xsl:template name="MyLoopFun">
    <xsl:param name="varStart"/>
    <xsl:if test="$varStart &lt; $varEnd">
      <!-- 输出格式定义 -->
      <a target="_blank" href="http://xml.sz.luohuedu.net/?{$varStart}">
        <xsl:attribute name="title"><xsl:value-of select="$varStart"/></xsl:attribute>
        <xsl:value-of select="$varStart"/>
      </a>
      <xsl:if test="$varStart &lt; ($varEnd - $varStep)"> , </xsl:if>
      <xsl:call-template name="MyLoopFun">
        <xsl:with-param name="varStart">
          <xsl:value-of select="$varStart + $varStep"/>
        </xsl:with-param>
      </xsl:call-template>
    </xsl:if>
  </xsl:template>
</xsl:stylesheet>

 

Add by : Huobazi (2005-6-10:05:11)