author: never-online
如果有朋友需要的话,请发封邮件给我,我会回复的,谢谢 BlueDestiny###126.com
DEMO
必要的说明
这些代码是去年的作品了,在这中间经过几次的变更,当然,错误在所难免。如果您发现错误,请通知我,方便我修改此代码。代码并不是非常标准,阅读的时候可能会有一些不方便:(
代码我只是分离出来,并做了一点点的改动和不影响现在功能的删除,因为有的功能涉及的文件较多。还要说明的是,在cls.template.asp中的代码并非完善,我记得以前我思考的时候,想把它做成完整的一个template的功能,不仅仅局限于一个替换的概念,甚至想过单独封装成COM+,并与COM+的特性关联,使template具有事务,多线程等功能。但终因时间原因,这个愿望没有实现了,有兴趣的朋友,我们可以一起交流,点击下面的相关链接可以与我联系。现在这个template与生成静态页的类只是我心里想的一个基本情况,方便还是很方便的,接口也不算复杂,相关的配置,都可以在CONST.asp里调整。
我在template里并没有过多的用正则来替换,用正则来替换是最方便快捷的了,有兴趣的朋友也可以尝试一下。(用JS比VBS会更方便一些)
技术说明
1.cls_template.asp: 功能:具备<template:ubb>标签(UBB),<template:rs>(替换数据据中的字段), <template:ct>(自定义标签), <template:pg>(分页标签,并没有完成的,只完成了部分)。模板文件为xml或其它的文件都可以,我这里用的是xml文件做为模板。
删去部分为:template:pg标标签的智能分析部分。以及注释掉replaceunsafetag的功能。
2.cls_BuildStaticFile.asp: 功能:生成指定后缀名的页面,如:xml, shtml, html, htm这些都可以了配置常量为:const STATICFILE_EXTNAME=".html",这里面还有几个Function,如:BuildStaticFile(SQL),调用时直接给参数SQL语句即可生成,比较方便。其它几个Function也都是类似的,删除静态页也可以直接给SQL语句即可(DeleteStaticFile(SQL))。 这里也可以用此class本身的方法来替换标签,obj.templateTag="a,b,c":obj.BuildFileCustom()。
有自动生成文件夹的功能。也可以多级生成,比如obj.filesFolder="a/b/c"
删去部分为:断点功能,使其能够记录上次生成静态页面的最后操作ID。
简单的例子 参考
cls_template.asp 部分
sql = "SELECT top 1 * FROM [tbl_article]"
Set rsObj = Server.CreateObject("ADODB.recordset")
rsObj.Open sql
Set objTemplate = new cls_template 生成实例
call objTemplate.loadtemplate("article.xml","article_detail") 载入模板template_folder在const.asp里配置
objTemplate.activers = rstObj 当前活动recordset型变量
stream = objTemplte.getStream() 返回Stream值
response.write(stream) 打印
cls_BuildStaticFile.asp 部分
retvalue = BuildStaticFile("SELECT top 1 * FROM [NVR_Article] WHERE art_id=" & art_id & "")
if (retvalue=true) then response.write("成功生成页面") else response.write("未生成页面")
Download
相关链接:我的CSDN Blog | 我的网站 Blog