搞了一个星期,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() < $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可以通过控制`<xsl:page-break>`来实现分页,但需要注意浏览器和处理器的兼容性问题。 **5. XSLT的高级特性** - **扩展对象(Extension Objects)**:允许使用特定处理器提供的额外功能。 - **命名空间...
XML RenderFormat选项得到了增强,它能以XML格式下载用户请求的下一页记录,利用浏览器已缓存的XSLT样式表对这些记录进行转换,然后在不刷新整个页面的情况下显示它们。这种方式极大地优化了分页性能,提高了用户...
这种方法允许用户在浏览器中查看报告时,享受类似于打印版式的阅读体验,每个页面都有明确的分隔。 首先,让我们理解XSL的作用。XSL是一种用于转换XML文档的样式表语言,它可以将XML数据转换成HTML、PDF或其他格式...
3. **JavaScript处理**:通过JavaScript,可以在浏览器端动态处理XML数据,实现交互功能,如分页显示、搜索过滤等。XMLHttpRequest对象常用于从服务器获取XML数据,然后用JavaScript处理和展示。 在这个项目中,...
1. 浏览器兼容性:不是所有浏览器都支持所有AJAX特性,需要考虑跨浏览器开发。 2. SEO问题:搜索引擎可能无法正确抓取和索引异步加载的内容。 3. 安全性:由于数据交换是在幕后进行,可能导致安全漏洞。 4. 用户感知...
6. **其他功能**:除了基本的添加和查看留言,该程序可能还包含搜索、排序、分页等功能,这些都是通过ASP处理XML数据实现的。 在"xBBS_free"这个文件中,很可能包含了这个BBS式留言程序的源代码,包括ASP脚本文件、...
在动态显示过程中,经常涉及分页、分类与排序等操作。例如,按给定范围显示数据、按指定字段对数据进行分类和排序。 综上所述,随着XML技术的发展,动态XML网站的设计变得越来越重要。通过对XML文档的有效管理和...
JavaScript可以用来添加动态效果,如分页、排序和过滤,而CSS则负责样式布局,确保报表在不同设备和浏览器上的视觉一致性。 综上所述,利用XML实现通用WEB报表打印的过程主要包括:定义XML结构(通过DTD或XML ...
- **B/S结构**:浏览器/服务器架构,其最大优势在于无需在客户端安装任何软件,仅需一个可联网的浏览器即可访问,实现了真正的跨平台操作,极大地提高了应用的灵活性和可维护性。 - **C/S结构**:客户端/服务器架构...
它并不依赖于一种全新的编程语言,而是利用已有的Web开发技术,如JavaScript、XHTML、CSS、DOM、XML、XSLT以及XMLHttpRequest对象,组合形成一个能够实现异步数据交换的平台。 在传统Web应用中,用户每次交互都需要...
- 数据加载:分页、无限滚动、实时搜索结果预览等,仅加载需要更新的部分内容。 - 实时通信:聊天室、通知系统,实时显示新消息或状态变化。 - 动态地图:拖动地图、缩放时,仅加载当前视图内的地理数据。 **Ajax的...
4.12.htm 用delete移除了myArry的第二个元素 4.13.htm 用“()”改变运算优先级的例子 4.14.htm 一个运算符结合性的例子 第5章(/C05/) 5.1.htm 一个最简单的条件语句 5.2....
1. 浏览器兼容性问题,旧版本浏览器可能不支持Ajax。 2. SEO(搜索引擎优化)难题,因为搜索引擎爬虫可能无法执行JavaScript。 3. 回退按钮和书签功能可能失效,因为页面变化未通过正常导航路径。 **Ajax开发工具**...
55. XPath和XSLT基础:讲述了XPath语法和XSLT转换语言的基础知识。 **PHP教程** 56. 如何加载运行已发布的PHP项目:介绍了在服务器上配置和运行PHP项目的步骤,包括本地服务器和远程服务器的设置。 57. PHP开发环境...
SQL Server 2005 提供了强大的 XML 支持,包括 XPath 和 XSLT 转换等。 #### 二、Web 开发技术 **2.1 ASP.NET 2.0 新特性** - **Web 缓存依赖(SQL Cache Dependency):** 这是一项新的缓存技术,允许缓存项依赖于...
BOM API则提供对浏览器窗口、历史记录、定时器等的访问。 2. **jQuery API** jQuery是一个轻量级的JavaScript库,它简化了DOM操作、事件处理、动画制作和Ajax交互。jQuery的核心API包括选择器(用于查找DOM元素)...
在这个项目中,开发者可能创建了一个Web应用程序,允许用户通过浏览器与MongoDB数据库交互,执行查询和数据管理。 【描述】中提到的 "XDOC(mini)" 是XDOC的精简版,XDOC是一个文档生成工具,它提供了一种基于XML的...
4. **chapter4**:可能进一步深入数据库操作,包括数据绑定、分页、排序等功能,以及使用记录集(Recordset)对象的技巧。 5. **chapter5**:可能讲解如何实现用户注册和登录功能,涉及到密码加密、表单验证等安全...
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...