对xml+xsl实现分页排序的改进,使支持对所有数据进行排序

以往见过的利用xml+xsl来实现分页排序的基本都只能本页内排序,究其原因,简单分析如下:

xml+xsl分页原理:在xsl中,遍历节点的时候,可以获取当前节点的位置,而且还能限制显示特定位置的节点,例如有18条记录,可以在xsl中设置只显示第1-6条,也可以设置只显示第7-12条,再配合客户端脚本,就可以动态改变xsl文档中控制显示指定位置节点的属性,从而实现分页(具体见代码)。不过这个有一点就是在xsl中获取的这个位置信息是xml文档中的节点位置,而不是排序后的位置;

同样xml+xsl实现排序原理:xsl可以按照节点的属性来排序,我们可以通过动态改变xsl的相关属性值来达到动态排序的目的。如果两个合起来用,却只能对当前页进行排序。

参考例子:
http://www.gaofan.com/web/sailflying/version2/learn/pages.xml
http://www.gaofan.com/web/sailflying/version2/learn/pages.xsl
http://www.gaofan.com/web/sailflying/version2/learn/paixu.xml
http://www.gaofan.com/web/sailflying/version2/learn/paixu.xsl
http://lucky.myrice.com/xml/xpath.html

我不知道有没有方法可以在xsl中先排序然后判断位置,不过我倒是由此想到了一个解决方法——xsl不仅可以和xml生成html,同样,也可以利用xml+xsl来生成新的xml,所以直接用一个单独的xsl来实现排序,然后和原来的xml生成一个新的排序后的xml,再利用这个排序xml来分页,就可以实现对全部数据进行排序而非当前页内的数据排序。

注:ID为SortData的数据岛即为xml排序的xsl,ID为temp的数据岛为排序后的新xml。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值