`
阳光小菜鸟
  • 浏览: 96840 次
  • 性别: Icon_minigender_2
  • 来自: 郑州
社区版块
存档分类
最新评论

跨浏览器的xslt分页(二)

    博客分类:
  • XML
阅读更多
搞了一个星期,xslt分页终于在IE和opera上跑起来了,这周放到嵌入式设备上,玩完...
用的是嵌入式最高级的浏览器,也才相当于opera7的水平,根本不支持xmlDocument,郁闷至极。接着搞了两天也没弄好。早上转换了思路,重新baidu了一下,居然找到解决方法,调试一上午,终于搞定。xslt真是麻烦啊...
xsl文件:
<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:param name="size" select="2"/>

 <xsl:template match="rss/channel">
  <html>
  <HEAD>
  <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
  <title><xsl:value-of select="/rss/channel/title"/></title>
  <script>
  <![CDATA[
   function nextPage(num){
    document.getElementById("content"+num).style.display="";
    num--;
    document.getElementById("content"+num).style.display="none";
   }
   function prevPage(num){
    document.getElementById("content"+num).style.display="";
    num++;
    document.getElementById("content"+num).style.display="none";
   }
   function onInitialize(){
    var i = 1;
    document.getElementById("content"+i).style.display = "";
   }

   function jumpPage(page,pages){
     var num=document.getElementById("jump"+page).value;
     if(num==""){alert("please enter page!!");return false;}
     for(i=1;i<=pages;i++){
       document.getElementById("content"+i).style.display="none";
       if(i==page){
        document.getElementById("jump"+i).value="";
       }
       if(i==num){
        document.getElementById("content"+i).style.display="";
       }
     }
   }

   function showPage(page,pages){
     var num=page;
     for(i=1;i<=pages;i++){
       document.getElementById("content"+i).style.display="none";
       if(i==page){
        document.getElementById("jump"+i).value="";
       }
       if(i==num){
        document.getElementById("content"+i).style.display="";
       }
     }
   }
  ]]>
  </script>
  </HEAD>


   <body  topmargin="0" leftmargin="0" bgcolor="#47A3AC" onload="onInitialize()">
    <xsl:apply-templates select="item[position() mod $size = 1]">
     <xsl:with-param name="pages" select="ceiling(count(item) div $size)"/>
    </xsl:apply-templates>
   </body>
  </html>
 </xsl:template>



 <xsl:template match="item">
 <xsl:param name="pages"/>
 <xsl:variable name="page" select="position()"/>
 <div name="content" id='content{$page}' style="display:none" title="content{$page}">
 <table  border="0" cellspacing="0" cellpadding="0" style="position: absolute; width: 204px; height: 33px; left: 72px; top:13px">
        <tr>
		<td align="left" colspan="2">
			<font color="#FAFAFA"><span style="text-decoration: none"><strong>当前栏目:
			<xsl:value-of select="/rss/channel/title"/></strong></span></font>
		</td>
        </tr>
</table>
<table  border="0" cellspacing="0" cellpadding="0" style="position: absolute; width: 600px; height: 313px; left: 25px; top:55px">
	<tr>
		<td align="left" colspan="2"> 			
			<font color="#FAFAFA"><span style="text-decoration: none"><strong>
			Feed地址:<xsl:value-of select="/rss/channel/link"/>
			</strong></span></font>
		</td>
	</tr>
	<tr>
		<td>
			<font color="#FAFAFA"><span style="text-decoration: none"><strong>当前Feed内容: </strong></span></font>
		</td>
	</tr>
   <xsl:for-each select="self::item | following-sibling::item[position() &lt; $size]">
	<tr>
			<td>
				<table width="300"  height="30" border="0"  cellspacing="1" cellpadding="0">
					<tr>
						<td align="left" valign="middle"  height="29">
							<a>   
							    <xsl:attribute name="href">
							    <xsl:value-of  select="link"/>
							    </xsl:attribute> 
							    <font color="blue"><span style="text-decoration: none"><strong>
							    <xsl:value-of select="title"/>   
							    </strong></span></font>
							</a>
						</td>
					</tr>
					<tr>
						<td align="left" valign="middle"  height="29">
						<font color="#FAFAFA"><span style="text-decoration: none"><strong>
							<xsl:value-of select="description"/>
						</strong></span></font>
						</td>
					</tr>
					<tr>
						<td align="left" valign="middle"  height="29">
						<font color="#FAFAFA"><span style="text-decoration: none"><strong>
							<xsl:value-of select="pubDate"/>
						</strong></span></font>
						</td>
					</tr>
				</table>
			</td>
			<td>
				<table width="300"  height="30" border="0"  cellspacing="1" cellpadding="0">
					<tr>
					<xsl:for-each  select="/rss/channel/image">
						<td align="left" valign="middle"  height="29">
						
							<img>   
							  <xsl:attribute   name="src"><xsl:value-of  select="/rss/channel/image/url"/></xsl:attribute>   
							</img>  
						</td>
					</xsl:for-each>
					</tr>					
				</table>
			</td>
	   </tr>
   </xsl:for-each>
    <tr>
    <td>
    <xsl:choose>
     <xsl:when test="$page = 1">   
      <a href="#{$page + 1}" onclick="nextPage({$page + 1})">
      <font color="blue"><span style="text-decoration: none"><strong>     下一页    </strong></span></font>
      </a>     
      <a href="#{$page + 1}" onclick="showPage({$pages},{$pages})">
      <font color="blue"><span style="text-decoration: none"><strong>     末页    </strong></span></font>
      </a>

     </xsl:when>

     <xsl:when test="$page = $pages">    
     <a href="#{$page + 1}" onclick="showPage(1,{$pages})">
      <font color="blue"><span style="text-decoration: none"><strong>     首页    </strong></span></font>
      </a>
      <a href="#{$page - 1}" onclick="prevPage({$page - 1})">
      <font color="blue"><span style="text-decoration: none"><strong>     上一页     </strong></span></font>
      </a>   
     </xsl:when>

     <xsl:otherwise>
      <a href="#{$page + 1}" onclick="showPage(1,{$pages})">
      <font color="blue"><span style="text-decoration: none"><strong>     首页    </strong></span></font>
      </a>
      <a href="#{$page - 1}" onclick="prevPage({$page - 1})">
      <font color="blue"><span style="text-decoration: none"><strong>     上一页    </strong></span></font>
      </a>   
      <a href="#{$page + 1}" onclick="nextPage({$page + 1})">
      <font color="blue"><span style="text-decoration: none"><strong>     下一页    </strong></span></font>
      </a>    
      <a href="#{$page + 1}" onclick="showPage({$pages},{$pages})">
      <font color="blue"><span style="text-decoration: none"><strong>     末页    </strong></span></font>
      </a>
     </xsl:otherwise>
    </xsl:choose>
   </td>
   </tr>
   <tr>
   <td>
      <font color="#FAFAFA"><span style="text-decoration: none"><strong>当前第<xsl:value-of select="$page" />页 </strong></span></font> 
      <font color="#FAFAFA"><span style="text-decoration: none"><strong>共<xsl:value-of select="$pages" />页</strong></span></font>
   </td>
   </tr>
   <tr>
  <td> 
  <font color="#FAFAFA"><span style="text-decoration: none"><strong>
  转到<input type="text" name="jump" id="jump{$page}" value="" size="2"/>页 <input type="button" value="go" onclick="jumpPage({$page},{$pages})"/>
  </strong></span></font>
  </td>
   <td>
  <a href="SearchGenreServlet">
  <font color="blue"><span style="text-decoration: none"><strong>
   返回</strong></span></font>
  </a>
  </td>
   </tr>
   </table>
   </div>
 </xsl:template>
</xsl:stylesheet>
 
分享到:
评论

相关推荐

    xslt语法参考手册

    XSLT可以通过控制`&lt;xsl:page-break&gt;`来实现分页,但需要注意浏览器和处理器的兼容性问题。 **5. XSLT的高级特性** - **扩展对象(Extension Objects)**:允许使用特定处理器提供的额外功能。 - **命名空间...

    datawindwo.net 程序

    XML RenderFormat选项得到了增强,它能以XML格式下载用户请求的下一页记录,利用浏览器已缓存的XSLT样式表对这些记录进行转换,然后在不刷新整个页面的情况下显示它们。这种方式极大地优化了分页性能,提高了用户...

    使用XSL和CSS的带有分页符HTML报告

    这种方法允许用户在浏览器中查看报告时,享受类似于打印版式的阅读体验,每个页面都有明确的分隔。 首先,让我们理解XSL的作用。XSL是一种用于转换XML文档的样式表语言,它可以将XML数据转换成HTML、PDF或其他格式...

    xml.rar_xml

    3. **JavaScript处理**:通过JavaScript,可以在浏览器端动态处理XML数据,实现交互功能,如分页显示、搜索过滤等。XMLHttpRequest对象常用于从服务器获取XML数据,然后用JavaScript处理和展示。 在这个项目中,...

    AJAX技术入门 ajax运行原理

    1. 浏览器兼容性:不是所有浏览器都支持所有AJAX特性,需要考虑跨浏览器开发。 2. SEO问题:搜索引擎可能无法正确抓取和索引异步加载的内容。 3. 安全性:由于数据交换是在幕后进行,可能导致安全漏洞。 4. 用户感知...

    XML+ASP结构的BBS式留言程序

    6. **其他功能**:除了基本的添加和查看留言,该程序可能还包含搜索、排序、分页等功能,这些都是通过ASP处理XML数据实现的。 在"xBBS_free"这个文件中,很可能包含了这个BBS式留言程序的源代码,包括ASP脚本文件、...

    动态XML网站设计探讨

    在动态显示过程中,经常涉及分页、分类与排序等操作。例如,按给定范围显示数据、按指定字段对数据进行分类和排序。 综上所述,随着XML技术的发展,动态XML网站的设计变得越来越重要。通过对XML文档的有效管理和...

    利用XML实现通用WEB报表打印

    JavaScript可以用来添加动态效果,如分页、排序和过滤,而CSS则负责样式布局,确保报表在不同设备和浏览器上的视觉一致性。 综上所述,利用XML实现通用WEB报表打印的过程主要包括:定义XML结构(通过DTD或XML ...

    ASP.NET课后习题

    - **B/S结构**:浏览器/服务器架构,其最大优势在于无需在客户端安装任何软件,仅需一个可联网的浏览器即可访问,实现了真正的跨平台操作,极大地提高了应用的灵活性和可维护性。 - **C/S结构**:客户端/服务器架构...

    AJAX技术学习总结参照.pdf

    它并不依赖于一种全新的编程语言,而是利用已有的Web开发技术,如JavaScript、XHTML、CSS、DOM、XML、XSLT以及XMLHttpRequest对象,组合形成一个能够实现异步数据交换的平台。 在传统Web应用中,用户每次交互都需要...

    ajax技术演示文稿

    - 数据加载:分页、无限滚动、实时搜索结果预览等,仅加载需要更新的部分内容。 - 实时通信:聊天室、通知系统,实时显示新消息或状态变化。 - 动态地图:拖动地图、缩放时,仅加载当前视图内的地理数据。 **Ajax的...

    AJAX基础概念、核心技术与典型案例(内涵动态实例)

    4.12.htm 用delete移除了myArry的第二个元素 4.13.htm 用“()”改变运算优先级的例子 4.14.htm 一个运算符结合性的例子 第5章(/C05/) 5.1.htm 一个最简单的条件语句 5.2....

    李琰恢HTML CSS/JavaScript PHP/Bootstrap教程

    55. XPath和XSLT基础:讲述了XPath语法和XSLT转换语言的基础知识。 **PHP教程** 56. 如何加载运行已发布的PHP项目:介绍了在服务器上配置和运行PHP项目的步骤,包括本地服务器和远程服务器的设置。 57. PHP开发环境...

    asp.net

    SQL Server 2005 提供了强大的 XML 支持,包括 XPath 和 XSLT 转换等。 #### 二、Web 开发技术 **2.1 ASP.NET 2.0 新特性** - **Web 缓存依赖(SQL Cache Dependency):** 这是一项新的缓存技术,允许缓存项依赖于...

    一些常用的API

    BOM API则提供对浏览器窗口、历史记录、定时器等的访问。 2. **jQuery API** jQuery是一个轻量级的JavaScript库,它简化了DOM操作、事件处理、动画制作和Ajax交互。jQuery的核心API包括选择器(用于查找DOM元素)...

    qinxuewu-mongo-web-select-master_java_

    在这个项目中,开发者可能创建了一个Web应用程序,允许用户通过浏览器与MongoDB数据库交互,执行查询和数据管理。 【描述】中提到的 "XDOC(mini)" 是XDOC的精简版,XDOC是一个文档生成工具,它提供了一种基于XML的...

    ASP网站源代码

    4. **chapter4**:可能进一步深入数据库操作,包括数据绑定、分页、排序等功能,以及使用记录集(Recordset)对象的技巧。 5. **chapter5**:可能讲解如何实现用户注册和登录功能,涉及到密码加密、表单验证等安全...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    6.3.2 跨页回发 6.4 cookie 6.5 会话状态 6.5.1 会话架构 6.5.2 使用会话状态 6.5.3 配置会话状态 6.5.4 会话状态安全 6.6 应用程序状态 6.7 总结 第二部分 数据访问 第7章 基础 7.1 ADO.NET...

Global site tag (gtag.js) - Google Analytics