zoukankan      html  css  js  c++  java
  • ASP静态HTML(局部)生成类

    快速导读:
    ASP生成HTML静态的方法很多,类也很多,但是下面这个从Tsys CMS里面提取出的类,我个人认为是非常经典的,值得研究ASP的朋友学习和改进。

    知识必备:
    需要一定ASP基础,懂得ASP类(Class)的使用

    适用范围:
    适合html大文档需要部分更新某个局部区域的情况

    代码与讲解:

    以下为ASP内容:

    Class Fox_TemplateClass
        Public FilePath                             '模板文件
        Private Template                            '模板暂存变量
        Public StartElement                         '元素开始标签
        Public EndElement                           '元素结束标签
        Public Value                                '插入内容

        Private Fso
        Private Fle
        Private regEx
        Private FileState                            '文件状态

        Private Sub Class_Initialize
            FileState=False
            FilePath=""
            Template=""
            StartElement=""
            EndElement=""
            Set regEx = New RegExp
                With regEx
                    .Multiline = True
                    .IgnoreCase = True
                    .Global = True
                End With
            Set Fso = Server.CreateObject("Scripting.FileSystemObject")
        End Sub

        Private Sub class_Terminate
            FilePath=""
            Template=""
            StartElement=""
            EndElement=""
            Set regEx=Nothing
            Set Fle=Nothing
            Set Fso=Nothing
        End sub

        Private Function FilterStr(str)
            FilterStr=str
            If str="" Or IsNull(FilterStr) Then
                FilterStr=""
            Else
                FilterStr=Replace(FilterStr,"\","\\")
                FilterStr=Replace(FilterStr,"(","\(")
                FilterStr=Replace(FilterStr,")","\)")
                FilterStr=Replace(FilterStr,"*","\*")
                FilterStr=Replace(FilterStr,"?","\?")
                FilterStr=Replace(FilterStr,"{","\{")
                FilterStr=Replace(FilterStr,"}","\}")
                FilterStr=Replace(FilterStr,".","\.")
                FilterStr=Replace(FilterStr,"+","\+")
                FilterStr=Replace(FilterStr,"[","\[")
                FilterStr=Replace(FilterStr,"]","\]")
            End If
        End Function

        '//设置模板文件路径
        Public Function OpenTemplate(mFilePath)
            Set Fle=Fso.OpenTextFile(mFilePath,1)
            Template=Fle.ReadAll
            Fle.Close
            FileState=True
            FilePath=mFilePath
        End Function

        '//规换模版元素,元素标签一般格式为:"<!-元素标签-开始--><!--元素标签-结束-->",你当然也可以自义
        '//无素标签不区分大小写
        Public Function ReplaceTemplate()
            If (Not FileState) Or Template="" Or StartElement="" Or EndElement="" Then
                Exit Function
            End If
            Dim strPatrn
                strpatrn=FilterStr(StartElement) & "[\S\s]*?" & FilterStr(EndElement)
            regEx.Pattern = strPatrn
            Template=regEx.Replace(Template,StartElement & vbCrLf & Value & vbCrLf & EndElement)
        End Function

        '//保存新的模板内容
        Public Function Save()
            If (Not FileState) Then
                Exit Function
            End If
            Set Fle=Fso.OpenTextFile(FilePath,2)
            Fle.Write Template
            Fle.Close
        End Function

        '//另存模板内容
        Public Function SaveAs(mFilePath)
            If (Not FileState) Then
                Exit Function
            End If
            Set Fle=Fso.OpenTextFile(mFilePath,2,1)
            Fle.Write Template
            Fle.Close
        End Function
    End Class

    这个类用法比较特别,它采用手动更新方式进行,自动进行开始标签<!--Template Start-->和结束标签<!--Template End-->的识别,然后对开始标签和结束标签框定的区域进行部分更新,最后生成HTML。

    用法实例: 

    以下为引用的内容:

    Dim TClass
    Set TClass=New Fox_TemplateClass
    TClass.OpenTemplate("e:/t.htm")
    TClass.StartElement="<!--资源标题标识-开始-->"
    TClass.EndElement="<!--资源标题标识-结束-->"
    TClass.Value="这是资源标题的替换内容"
    TClass.ReplaceTemplate()

    TClass.StartElement="<!--资源内容-开始-->"
    TClass.EndElement="<!--资源内容-结束-->"
    TClass.Value="我将替换成资源的内容"
    TClass.ReplaceTemplate()

    TClass.Save()
    TClass.SaveAs("e:/t1.htm")
    Set TClass=Nothing

  • 相关阅读:
    The type or namespace name 'Windows' does not exist in the namespace....
    WCF 事件处理
    ASP.Net程序在IIS7的部署问题
    Oracle Package的全局变量与Session
    [ASP.NET]C1Webgrid中实现编辑和计算
    EXCEL妙用:选取单元格时改变整行的背景色
    [转]22 个精美的网站管理后台模板推荐
    [转]C#开发Active控件(二)
    Oracle获取时间差的技巧
    C#里的Random
  • 原文地址:https://www.cnblogs.com/cosiray/p/1551948.html
Copyright © 2011-2022 走看看