热门:网页模板.net视频教程JQueryMVCjsonExtJs源码示例三级联动JQuery菜单
您现在的位置:.Net中文社区>> XML编程>>正文内容

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

发布时间:2008年12月03日点击数: 孟宪会

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

先建立 一个XSLLoop.xml 文件如下:

<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="XSLLoop.xsl"?>
<net_lover>.Net中文社区</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://www.aspxcs.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://www.aspxcs.net/Item/{$varStart}.aspx">
        <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>

结果如下:

0 , 2 , 4 , 6 , 8 , 10 , 12 , 14 , 16 , 18 , 20 , 22 , 24 , 26 , 28 , 30 , 32 , 34



本站热点业务

更多模板/案例展示

热门推荐

关于我们 | 联系我们 | 团队日志 | 网站地图 | 网站合作