`
terryfeng
  • 浏览: 492775 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个XSL 翻页例子入门

阅读更多

<?xml version="1.0" encoding="gb2312"?>
<!--由于 XSL 样式表本身也是一个 XML 文档,因此它总是由 XML 声明起始:-->

<!--  XSL 样式表的根元素 <xsl:stylesheet>,定义此文档是一个
XSLT 样式表文档(连同版本号和 XSLT 命名空间属性)。 -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

  <!--声明局部或全局参数。-->
  <!--注释:如果在模板内声明参数,就是局部参数,如果作为顶层元素来声明,就是全局参数。-->
  <xsl:param name="size" select="4"/>

  <!--模板:当某个指定的节点被匹配时所应用的规则。 这里是AllProSaleD-->
  <!--match 属性用于关联 XML 元素和模板。match 属性也可用来为整个文档定义模板。
  match 属性的值是 XPath 表达式(举例,match="/" 定义整个文档)。-->
  <xsl:template match="AllProSaleD">
    <!-- <xsl:apply-templates> 元素可把一个模板应用于当前的元素或者当前元素的子节点。 -->
    <!-- XPath谓语表示 除Size变量 余数为1的Record节点时候应用模板 -->
    <xsl:apply-templates select="record[position() mod $size = 1]">
      <!--传递给模板的参数的值-->
      <!--<xsl:with-param> 元素定义了传递给模板的参数的值。
      注释:<xsl:with-param> 元素的 name 属性的值必须与 <xsl:param> 元素中的 name 相匹配,否则将忽略 <xsl:with-param> 元素,。
      注释:<xsl:call-template> 和 <xsl:apply-templates> 中均允许使用 <xsl:with-param> 元素。
      -->
      <!-- XPath谓语表示 所有Record 除以 Size 的结果 最小整数3.14 等于4 -->
      <xsl:with-param name="pages" select="ceiling(count(record) div $size)"/>
    </xsl:apply-templates>
  </xsl:template>

  <xsl:template match="record">
    <!--模板参数-->
    <xsl:param name="pages"/>
    <!-- 定义常量 --><!--如果 select 属性含有文字字符串,则必须给字符串加引号。-->
    <!-- 返回当前正在被处理的节点的 index 位置。 每次调用都会重新计算赋值给page -->
    <xsl:variable name="page" select="position()"/>
    <div id='content{$page}' style="display:'none'" title="content{$page}">
      <h2>报表2</h2>
      <table border="1" width="100%" cellpadding="0" cellspacing="0" >
        <tr bgcolor="#9acd32" color="#ffffff" >
          <th align="left">产品名称</th>
          <th align="left">产品售价</th>
          <th align="left">本金</th>
          <th align="left">销售数量</th>
          <th align="left">销售时间</th>
          <th align="left">经销商</th>
          <th align="left">收入</th>
        </tr>
        <!-- <xsl:for-each> 元素允许您在 XSLT 中进行循环。 -->
        <!-- select 属性的值是一个 XPath 表达式。此表达式的工作方式类似于定位某个文件系统,在其中正斜杠可选择子目录。 -->
        <!-- 轴:所有自己本身(如果是Record) 以及 轴:后面的兄弟节点【谓词-后面的Size个兄弟】(也就是后面的Size个兄弟和他自己) -->
        <xsl:for-each select="self::record | following-sibling::record[position() &lt; $size]">
          <tr>
            <td>
              <!-- <xsl:value-of> 元素用于提取某个选定节点的值,并把值添加到转换的输出流中:-->
              <!-- select 属性的值是一个 XPath 表达式。此表达式的工作方式类似于定位某个文件系统,在其中正斜杠可选择子目录。-->
              <xsl:value-of select="productName"/>
            </td>
            <td>
              <xsl:value-of select="proPrice"/>
            </td>
            <td>
              <xsl:value-of select="proPrincipal"/>
            </td>
            <td>
              <xsl:value-of select="saleNumber"/>
            </td>
            <td>
              <xsl:value-of select="saleDate"/>
            </td>
            <td>
              <xsl:value-of select="Del"/>
            </td>
            <td>
              <xsl:value-of select="Income"/>
            </td>
          </tr>
        </xsl:for-each>
      </table>
      <div id="navBar">
        <!--  <xsl:choose> 元素用于结合 <xsl:when> 和 <xsl:otherwise> 来表达多重条件测试。 -->
        <xsl:choose>
          <!-- 一共就一页 -->
          <xsl:when test="$pages = 1">
            第<xsl:value-of select="$page" />页---

            共有<xsl:value-of select="$pages" />页---
          </xsl:when>
          <!-- 第一页时 -->
          <xsl:when test="$page = 1">
            第<xsl:value-of select="$page" />页---
            <a href="#{$page + 1}" onclick="nextPage({$page + 1})">下一页</a>---
            共有<xsl:value-of select="$pages" />页---
          </xsl:when>
          <!-- 最后一页时 -->
          <xsl:when test="$page = $pages">
            第<xsl:value-of select="$page" />页---
            <a href="#{$page - 1}" onclick="prevPage({$page - 1})">上一页</a>---
            共有<xsl:value-of select="$pages" />页---
          </xsl:when>
          <!-- 条件都不是得情况 -->
          <xsl:otherwise>
            第<xsl:value-of select="$page" />页---
            <a href="#{$page - 1}" onclick="prevPage({$page - 1})">上一页</a>---
            <a href="#{$page + 1}" onclick="nextPage({$page + 1})">下一页</a>---
            共有<xsl:value-of select="$pages" />页---
          </xsl:otherwise>
        </xsl:choose>
      </div>

    </div>
  </xsl:template>
</xsl:stylesheet>

 

 

<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/xsl" href="demo.xsl"?>
<AllProSaleD>
    <record  id="1">
        <productName name="产品名称">光学相机1500</productName>
        <proPrice name="产品售价">100.00</proPrice>
        <proPrincipal name="本金">20.00</proPrincipal>
        <saleNumber name="销售数量">67</saleNumber>
        <saleDate name="销售时间">2009-6-25 9:00</saleDate>
        <Del name="经销商">美晨</Del>
        <Income name="收入">112</Income>
    </record>
    <record id="2">
        <productName name="产品名称"> [延保]数码\光学相机1500 </productName>
        <proPrice name="产品售价">100.00</proPrice>
        <proPrincipal name="本金">20.00</proPrincipal>
        <saleNumber name="销售数量">67</saleNumber>
        <saleDate name="销售时间">2009-6-25 9:00</saleDate>
        <Del name="经销商">美晨</Del>
        <Income name="收入">112</Income>
    </record>
    <record id="3">
        <productName name="产品名称"> [延保]数码\光学相机1500 </productName>
        <proPrice name="产品售价">100.00</proPrice>
        <proPrincipal name="本金">20.00</proPrincipal>
        <saleNumber name="销售数量">67</saleNumber>
        <saleDate name="销售时间">2009-6-25 9:00</saleDate>
        <Del name="经销商">美晨</Del>
        <Income name="收入">112</Income>
    </record>

  <record  id="1">
    <productName name="产品名称">光学相机1500</productName>
    <proPrice name="产品售价">100.00</proPrice>
    <proPrincipal name="本金">20.00</proPrincipal>
    <saleNumber name="销售数量">67</saleNumber>
    <saleDate name="销售时间">2009-6-25 9:00</saleDate>
    <Del name="经销商">美晨</Del>
    <Income name="收入">112</Income>
  </record>
  <record id="2">
    <productName name="产品名称"> [延保]数码\光学相机1500 </productName>
    <proPrice name="产品售价">100.00</proPrice>
    <proPrincipal name="本金">20.00</proPrincipal>
    <saleNumber name="销售数量">67</saleNumber>
    <saleDate name="销售时间">2009-6-25 9:00</saleDate>
    <Del name="经销商">美晨</Del>
    <Income name="收入">112</Income>
  </record>
  <record id="3">
    <productName name="产品名称"> [延保]数码\光学相机1500 </productName>
    <proPrice name="产品售价">100.00</proPrice>
    <proPrincipal name="本金">20.00</proPrincipal>
    <saleNumber name="销售数量">67</saleNumber>
    <saleDate name="销售时间">2009-6-25 9:00</saleDate>
    <Del name="经销商">美晨</Del>
    <Income name="收入">112</Income>
  </record>
  <record  id="1">
    <productName name="产品名称">光学相机1500</productName>
    <proPrice name="产品售价">100.00</proPrice>
    <proPrincipal name="本金">20.00</proPrincipal>
    <saleNumber name="销售数量">67</saleNumber>
    <saleDate name="销售时间">2009-6-25 9:00</saleDate>
    <Del name="经销商">美晨</Del>
    <Income name="收入">112</Income>
  </record>
  <record id="2">
    <productName name="产品名称"> [延保]数码\光学相机1500 </productName>
    <proPrice name="产品售价">100.00</proPrice>
    <proPrincipal name="本金">20.00</proPrincipal>
    <saleNumber name="销售数量">67</saleNumber>
    <saleDate name="销售时间">2009-6-25 9:00</saleDate>
    <Del name="经销商">美晨</Del>
    <Income name="收入">112</Income>
  </record>
  <record id="3">
    <productName name="产品名称"> [延保]数码\光学相机1500 </productName>
    <proPrice name="产品售价">100.00</proPrice>
    <proPrincipal name="本金">20.00</proPrincipal>
    <saleNumber name="销售数量">67</saleNumber>
    <saleDate name="销售时间">2009-6-25 9:00</saleDate>
    <Del name="经销商">美晨</Del>
    <Income name="收入">112</Income>
  </record>
  <record  id="1">
    <productName name="产品名称">光学相机1500</productName>
    <proPrice name="产品售价">100.00</proPrice>
    <proPrincipal name="本金">20.00</proPrincipal>
    <saleNumber name="销售数量">67</saleNumber>
    <saleDate name="销售时间">2009-6-25 9:00</saleDate>
    <Del name="经销商">美晨</Del>
    <Income name="收入">112</Income>
  </record>
  <record id="2">
    <productName name="产品名称"> [延保]数码\光学相机1500 </productName>
    <proPrice name="产品售价">100.00</proPrice>
    <proPrincipal name="本金">20.00</proPrincipal>
    <saleNumber name="销售数量">67</saleNumber>
    <saleDate name="销售时间">2009-6-25 9:00</saleDate>
    <Del name="经销商">美晨</Del>
    <Income name="收入">112</Income>
  </record>
  <record id="3">
    <productName name="产品名称"> [延保]数码\光学相机1500 </productName>
    <proPrice name="产品售价">100.00</proPrice>
    <proPrincipal name="本金">20.00</proPrincipal>
    <saleNumber name="销售数量">67</saleNumber>
    <saleDate name="销售时间">2009-6-25 9:00</saleDate>
    <Del name="经销商">美晨</Del>
    <Income name="收入">112</Income>
  </record>
</AllProSaleD>

分享到:
评论

相关推荐

    xml和xsl的练习例子

    xml和xsl的练习例子xml和xsl的练习例子xml和xsl的练习例子xml和xsl的练习例子xml和xsl的练习例子xml和xsl的练习例子

    在XSL使用数组例子

    在XSL使用数组例子 在XSL使用数组例子 在XSL使用数组例子

    xsl学习笔记,入门知识

    xsl 简单实例,入门知识,xsl的简单语法介绍,适合初学者了解xsl使用。

    xsl简易教程,让你轻松入门

    一篇非常不错的xsl简易教程,希望对您有所帮助

    DOMSAXXSL入门小例子

    DOM SAX XSL 入门小例子

    xsl入门教程

    xml的xsl开发技术,详细介绍了xsl的相关内容,是word文档的,所以可以进行拷贝复制修改等等以作为自己的学习笔记,也可以自己生成pdf格式的,编程超高清的pdf了,你值得拥有

    网页XSL基础教程,支持XML和XSL

    一个跨浏览器的解决方法 ...在服务器上进行XSL转换正在成为未来Internet信息服务器工作任务的一个主要部 分,同时我们将看到专用浏览器市场的发展,如:Braille、有声网络、网络打印 机、手持PC、移动电话等。

    跟我学XSL

    第一个XML文档 2.XSL入门 3.XSL模板与匹配模式 4.测试模式 5.XSL中的choose 6.运算符,关系与逻辑运算符,特殊字符等 7.XSL函数之一 8.脚本与XSL的结合及应用 9.XSL函数之二(DOM中对象的方法)

    XSL开发基础参考资料

    XSL函数大全 XSL元素大全 常用的XPATH手册 XSL知识速查

    xsd,xml,htm,xsl,dom例子

    围绕动物园(zoo)这个实体而写的xsd,xml,htm,xsl,dom例子,易懂,适于初学者

    跟我学xsl.doc

    XSL入门、XSL模板与匹配模式、测试模式等。

    XSL-FO 教程

    XSL-FO 简介 XSL-FO 的简介。包括其概念和作用。 XSL-FO 文档 本章将解 XSL-FO 文档的结构。 XSL-FO 区域 本章讲解 XSL-FO 的区域模型(area model)。 XSL-FO 输出 本章讲解 XSL-FO 文档的输出元素(Output ...

    XML DTD XSL XLD DOM

    XML例子 DTD例子 XSL例子 XLD例子 DOM解析

    XSL速查手册中文版

    XSL速查XSL速查XSL速查XSL速查XSL速查XSL速查

    利用XSL和ASP实现XML文档在线编辑

    本文通过一个详细的例子,来阐述了在线编辑XML文档数据的方法。由于Netscape对XML的支持比较弱,因此,要实现跨平台的数据交换,数据的处理必须在服务器端进行。要编辑XML文档,首先要做的事情就是怎样把这些数据...

    XSL简明教程(5)

    简单的办法就是给你的for-each元素增加一个order-by属性,就象这样: &lt;xsl:for-each select="CATALOG/CD" order-by=" ARTIST"&gt; order-by属性带有一个" "或者"-" 的符号,用来定义索引的方式,是升序还是降序排列。...

    xml xsl网页生成

    xml xsl网页生成,一个很小的测试demo,供大家学习

    OMML2MML.XSL

    使用java解析word文件里得数学公式时,会用到该文件.可以将公式的格式转为目标格式. Mathml (MML) ...Office在安装目录中提供了将OMML转为MathML的xsl工具:MML2OMML.XSL 注:试用前,请先打开文件并阅读第一行.

    XSL学习资料

    包含xslt的标准API学习手册以及XSL的简易教程,可以帮助XSL初学者快速入门。

Global site tag (gtag.js) - Google Analytics