解析标签出错,速度帮忙看下。。

ChinaXtHuLang 2010-08-08 04:30:21
模板页里的标签:{$ArtList(10,50,11,"")}

我想通过先读取模板。然后解析模板里的上面的标签。最后生成静态页面
我的这个函数:
'========================================= 文章
Function ArtList(Num,TxT,FDate,ClassId)
Dim oSQL,oRs,outStr
outStr = ""
oSQL = "Select Top "&Num&" Article_id,Article_title,Article_date,Article_count from Article Where 1 =1 "
If ClassId <> "" Then
oSQL = oSQL &" And cat_id = "&ClassId&""
End If
oSQL = oSQL &" order by Article_id desc"
Set oRs = Conn.Execute(oSQL)
If (oRs.EOF And oRs.BOF) Then
outStr = outStr &"<li>当前还没有添加文章!</li>" & vbCrLf
Else
ArrArt = oRs.GetRows()
For i = 0 To Ubound(ArrArt,2)
outStr = outStr &"<li><span>"&FormatDate(ArrArt(2,i),FDate)&"</span><a title=""文章标题:"&ArrArt(1,i)&" 发布时间:"&formatdate(ArrArt(2,i),2)&" 浏览次数:"&ArrArt(3,i)&""" href=""Article/ShowArticle.asp?id="&ArrArt(0,i)&""" target=""_blank"">"&gotTopic(ArrArt(1,i),TxT)&"</a></li>" & vbCrLf
Next
End If
Set oRs = Nothing
ArtList = outStr
End Function


可以。但是遇到个问题,{$ArtList(10,50,11,"")}最后一项调的是分类。
为空就调用所有的。。
但是为空标签就解析错误。。。

下面是解析代码:
Function ReplaceLabel(strHtml)
Dim regEx, Match, Matches
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Global = True
regEx.MultiLine = True
regEx.Pattern = "\{\$ArtList\((.*?)\)\}"
Set Matches = regEx.Execute(strHtml)
For Each Match In Matches
arrTemp = Split(Match.SubMatches(0), ",")
If UBound(arrTemp) + 1 < 4 Then
strTemp = "函数式标签:{$ArtList(参数列表)}的参数个数不对。请检查模板中的此标签。"
Else
strTemp = ArtList(arrTemp(0), arrTemp(1), arrTemp(2), arrTemp(3))
End If
strHtml = Replace(strHtml, Match.value, strTemp)
Next
Set Matches = Nothing
ReplaceLabel = strHtml
End Function


哪里错误了。或者是该怎么搞???
...全文
55 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Linzhe423 2010-08-09
好像这些代码跟我用的差不多,,,看着就烦心,,,
回复
ChinaXtHuLang 2010-08-08
已经解决。明天结贴
回复
in0512 2010-08-08
解析错误,显示什么错误啊
回复
ChinaXtHuLang 2010-08-08
高手们都跑哪里去了。都只回答些基本的。这个正则的就不回答了?我晕啊
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告