分页问题=======> xml+xsl 好像不那么容易神话般地实现"数据和显示的完全分离"!

stanely 2004-05-02 05:06:35
我做一个产品展示的系统,把厂家的产品按照数据库分页显示出来就可以。而数据库的东西是这个厂家的人维护的。因为数据库的东西变化很少,做成动态页面每次用户访问都是得到一样的东西,似乎浪费太大,我想当数据库改变的时候生成静态页面,每次让客户访问的是htm多好。

并且,我想实现数据和现实的完全分离,即,显示完全由xsl控制。

做法如下:

1、从数据库中把所有的数据用php生成xml文件,并且不考虑具体xsl怎样去转换xml,只要数据详尽。

2、再编写xsl来转换xml生成给客户浏览的叶面。而生成htm的过程是php在把数据库内容写入xml之后调用xml解析器的transform方法结合这个xsl来做的.

可是问题出来了:

调用一次transform只能生成一个htm文件,而比如一页显示10个产品,有100种产品,怎么能够生成十个htm?

当然,用php循环10次,每次生成不一样的xml,并且每次都调用xsl来转换生成第n页,可是这就违背了“数据和现实完全分离”的初衷。因为厂家的人除了维护数据库以外,还想通过自己设计xsl来随时改变显示的样子,甚至随时改变一页显示的产品数量。

这是不是:不可能完成的任务?

怎么实现“数据和仙是完全分离”腻?
...全文
68 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
saucer 2004-05-02
  • 打赏
  • 举报
回复
不太明白你的做法

生成XML后,写个脚本,然后直接调用XSLT处理器,如果你是在Windows上,你可以使用MSXML,可以用AddParameter的方法设置参数,譬如起始节点和每页的记录数,然后调用DomDocument的transformNode方法,然后用Scripting.FileSystemObject直接生成HTML,这样每次用户改动数据(XML)或XSLT的话,运行一次脚本就可以重新生成所有的HTML文件

addParameter
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk30/htm/xmmthaddparameter.asp

transformNode
http://msdn.microsoft.com/library/en-us/xmlsdk30/htm/xmmthtransformnode.asp?frame=true

http://msdn.microsoft.com/library/en-us/script56/html/jsmthWriteLine.asp?frame=true
stanely 2004-05-02
  • 打赏
  • 举报
回复
?
tinatao 2004-05-02
  • 打赏
  • 举报
回复
关注

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧