ASP生成静态模版技术(带参数的标签)
来源:风之相随BLOG 发布时间:2009-03-03 12:29:00
标签:静态,模板,技术,标签,asp
<!--模板-->
<table width="100%" border="0" cellspacing="5" cellpadding="0">
<tr>
<td><tag:article_list class_id="314" PageSize="4" Len="8" showtime="0" /></td>
</tr>
</table>
<%
Call loadtemplate("test.htm")
'==============================
''替换模板内容
'==============================
Function loadtemplate(FileName)
Dim TempHtml
TempHtml = readfromfile(FileName)
'''处理用户标签
TempHtml = process_customtags(TempHtml)
loadtemplate = TempHtml
End Function
'==============================
'【功能】解析并替换相应的模板标签内容
'==============================
Function Parsetag(ByVal strtag)
Dim arrResult, className, arrAttributes, sTemp, i, objclass
'如果标签是空的则退出函数
If Len(strtag) = 0 Then Exit Function
arrResult = MySplit(strtag, ":")
className = MySplit(arrResult(1), " ")(0)
Parsetag = strtag
Dim nclass_id, nLen, nIsWhat, nshowtime
select Case LCase(className)
Case "article_list"
nclass_id = 0
nLen = 24
nPageSize = 10
nshowtime = 0
If Not IsBlank(GetAttribute("pagesize", strtag)) Then nPageSize = GetAttribute("pagesize", strtag)
If Not IsBlank(GetAttribute("class_id", strtag)) Then nclass_id = GetAttribute("class_id", strtag)
If Not IsBlank(GetAttribute("Len", strtag)) Then nLen = Int(GetAttribute("Len", strtag))
If Not IsBlank(GetAttribute("showtime", strtag)) Then nshowtime = Int(GetAttribute("showtime", strtag))
Parsetag = show_article_list(nclass_id, nPageSize, nLen, nshowtime)
End select
End Function
'==============================
'【功能】处理自定义标签
'==============================
Function process_customtags(ByVal sContent)
Dim objRegEx, Match, Matches
'建立正则表达式
Set objRegEx = New RegExp
'查找内容
objRegEx.Pattern = "<tag:[^<>]+?\/>"
'忽略大小写
objRegEx.IgnoreCase = True
'全局查找
objRegEx.Global = True
Set Matches = objRegEx.Execute(sContent)
'循环已发现的匹配
For Each Match in Matches
sContent = Replace(sContent, Match.Value, Parsetag(Match.Value))
Next
'消毁对象
Set Matches = Nothing
Set objRegEx = Nothing
'返回值
process_customtags = sContent
End Function
'==============================
'文件内容读取.
'==============================
Function readfromfile(ByVal File)
Dim objStream
On Error Resume Next
Set objStream = Server.createObject("ADODB.Stream")
If Err.Number = -2147221005 Then
Response.Write "<div align='center'>非常遗憾,您的主机不支持ADODB.Stream,不能使用本程序</div>"
Err.Clear
Response.End
End If
With objStream
.Type = 2
.Mode = 3
.Open
.LoadFromFile Server.MapPath(File)
If Err.Number<>0 Then
Response.Write "<div align='center'>文件<font color='#ff0000'>" & File & "</font>无法被打开,请检查是否存在!</font></div>"
Err.Clear
Response.End
End If
.Charset = "GB2312"
.Position = 2
read1file = .ReadText
.Close
End With
Set objStream = Nothing
End Function
'==============================
''显示文章内容
'==============================
Function show_article_list(class_id, nPageSize, nLen, nshowtime)
每人代码都不一样,自己写哈
End Function
'==============================
'判断是否为空
'==============================
Function IsBlank(ByRef TempVar)
IsBlank = False
select Case VarType(TempVar)
'Empty & Null
Case 0, 1
IsBlank = True
'String
Case 8
If Len(TempVar) = 0 Then
IsBlank = True
End If
'Object
Case 9
Dim tmpType
tmpType = TypeName(TempVar)
If (tmpType = "Nothing") or (tmpType = "Empty") Then
IsBlank = True
End If
'Array
Case 8192, 8204, 8209
If UBound(TempVar) = -1 Then
IsBlank = True
End If
End select
End Function
%>


猜你喜欢
- 进入查询窗口后,输入下面的语句: CREATE INDEX mycolumn_index ON mytable (myclumn) 这个语句
- 目录一.models数据库映射二.serializers序列化三.url路由四.Views视图类一.models数据库映射from djan
- 前言在 Go 语言中,Goroutine 和 Channel 是非常重要的并发编程概念,它们可以帮助我们解决并发编程中的各种问题。关于它们的
- 本文通过Python3+PyQt5实现《python Qt Gui 快速编程》这本书13章程序Rich文本的行编辑,可以通过鼠标右键选择对文
- virtualenv是一个创建隔绝的Python环境的工具。virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Pytho
- 这是今天在温习lambda表达式的时候想到的问题,众所周知C系列语言中的 三元运算符(?:)是一个非常好用的语句,关于C中的三元运算符表达式
- 本文实例讲述了python在控制台输出进度条的方法。分享给大家供大家参考。具体实现方法如下:进度条效果如下所示:|#############
- 环境:python3, 要安 * s4这个第三方库获取请求头的方法这里使用的是Chrome浏览器。打开你想查询的网站,按F12,或者鼠标右键一
- <?php list($usec, $sec) = explode(' ', microtime()); $timer
- 准备开始学习Python,但是刚准备环境搭建时就遇到了下面的错误:仔细的看了看,说是缺少DLL。对于这个问题的解决办法:方法一:1. 在安装
- 在论坛和聊天室这样的场景里,为了保证用户体验,我们经常需要屏蔽很多不良词语。对于单个关键词查找,自然是indexOf、正则那样的方式效率比较
- 输入半径,计算圆的周长、面积、球体体积,并画出这个圆。拖动条、输入框和图像控件的数据保持一致!Fedora下测试通过#https://git
- 目录1、方式一:自动创建2、方式二:纯手动创建3、方式三:半自动创建1、方式一:自动创建# django orm 自动帮我们创建第三张表,我
- TF(Term Frequency)词频,在文章中出现次数最多的词,然而文章中出现次数较多的词并不一定就是关键词,比如常见的对文章本身并没有
- 1: os.listdir(path) //path为目录 功能相当于在path目录下执行dir命令,返回为list类型 print os.
- 今天发现一个很好用二维数组排序的php方法,usort,推荐给大家,以后二维数组里面,要按照一个字段的值排序用这个方法简单高效,例如下面的数
- 证明出错在dataloader里面在pytorch当中,float16和half是一样的数据结构,都是属于half操作,然后dataload
- CentOS6.9+Mysql5.7.18源码安装,以下操作均在root用户下执行。1、安装依赖工具cmake make3.75+ gcc4
- getattr`getattr`函数属于内建函数,可以通过函数名称获取value = obj.attributevalue = getatt
- 实例如下所示:>>> import pandas as pd>>> df = pd.DataFrame(