<% Dim MARKUP_START_TAG Dim MARKUP_END_TAG Dim MARKUP_END Dim ATTRIBUTE_NAME_START_PREFIX Dim ATTRIBUTE_NAME_END_PREFIX Dim ATTRIBUTE_NAME_START_POSTFIX Dim ATTRIBUTE_NAME_END_POSTFIX ' Dim NULL Dim DV_BROWSER Dim DV_FILED Dim NEWLINE ' NULL = 0 DV_BROWSER = 1 DV_FILE = 2 NEWLINE = vbCrLf MARKUP_START_TAG = "" '"<" MARKUP_END_TAG = "" '">" MARKUP_END = "" '"/" ATTRIBUTE_NAME_START_PREFIX = "" ATTRIBUTE_NAME_END_PREFIX = "" ATTRIBUTE_NAME_START_POSTFIX = "Begin" ATTRIBUTE_NAME_END_POSTFIX = "End" Function ArrayAppendVariable(Dest, var) If Not IsArray(Dest) Then Dest = Array() Redim Preserve Dest(UBound(Dest) + 1) Dest(UBound(Dest)) = Obj End Function Function ArrayAppendObject(Dest, Obj) If Not IsArray(Dest) Then Dest = Array() Redim Preserve Dest(UBound(Dest) + 1) Set Dest(UBound(Dest)) = Obj End Function Class cNameValuePair Public Name Public Value Public Function ToString() If Name = "" Then ToString = Value Else ToString = Name & "=" & Value End If End Function End Class Class cNameValuePairList Public List Public Function Add(Name, Value) Dim Temp Set Temp = New cNameValuePair Temp.Name = Name Temp.Value = Value ArrayAppendObject List, Temp End Function Public Function GetValueFromName(Name) Dim I Dim Result Result = NULL If IsArray(List) And Name <> "" Then For I = LBound(List) To UBound(List) If List(I).Name = Needle Then Result = List(I).Value Next End If InNameValueArray = Result End Function Public Function GetIndexFromName(Name) Dim I Dim Result Result = -1 If IsArray(List) And Name <> "" Then For I = LBound(List) To UBound(List) If List(I).Name = Name Then Result = I Next End If GetIndexFromName = Result End Function Public Function RawPut(Name, Value) Dim Index Index = GetIndexFromName(Name) If Index > -1 Then List(Index).Value = Value Else Add Name, Value End If End Function Public Function Put(NameValue) RawPut NameValue.Name, NameValue.Value End Function Public Function ToString() Dim Result Result = "" If IsArray(List) Then Dim I For I = LBound(List) To UBound(List) Result = Result & List(I).ToString() & " " Next End If ToString = Result End Function Private Function NameValuePairFromString(RawString) Dim Result Set Result = New cNameValuePair If InStr(RawString, "=") Then Dim Temp Temp = Split(RawString, "=") Result.Name = Temp(0) Result.Value = Temp(1) Else Result.Name = "" Result.Value = RawString End If Set NameValuePairFromString = Result End Function Public Function FromString(Src) Dim RawDataArray RawDataArray = Split(Trim(Src), " ") If IsArray(RawDataArray) Then Dim I For I = LBound(RawDataArray) To UBound(RawDataArray) Put NameValuePairFromString(RawDataArray(I)) Next End If End Function End Class Function CreateParm(Name, Value) Dim Result Set Result = New cNameValuePair Result.Name = Name Result.Value = Value Set CreateParm = Result End Function Function InNameValueArray(Haystack, Needle) Dim I Dim Result Result = -1 If IsArray(Haystack) And Needle <> "" Then For I = LBound(Haystack) To UBound(Haystack) If Haystack(I).Name = Needle Then Result = I Next End If InNameValueArray = Result End Function Function NameValueArrayToString(Src) Dim Result Result = "" If IsArray(Src) Then Dim I For I = LBound(Src) To UBound(Src) Result = Result & Src(I).ToString() & " " Next End If NameValueArrayToString = Result End Function Class cMarkupElement 'Recursive elements Public Children Public Parent Public ElementName Public Variables Public Function Constructor () Response.Write "Testing Constructor" End Function Public Function Create(ElementName) Set Me.Variables = New cNameValuePairList Me.ElementName = ElementName End Function Public Function ToString(Device) If Device = NULL Then NL = "" If Device = DV_BROWSER Then NL = "
" If MARKUP_START_TAG = "<" And MARKUP_END_TAG = ">" Then MARKUP_START_TAG = "<" MARKUP_END_TAG = ">" End If End If If Device = DV_FILE Then NL = NEWLINE If IsArray(Children) Then Dim Childs Childs = "" Dim I For I = LBound(Children) To UBound(Children) If Device = DV_BROWSER And MARKUP_START_TAG = "<" And MARKUP_END_TAG = ">" Then MARKUP_START_TAG = "<" MARKUP_END_TAG = ">" End If Childs = Childs & Children(I).ToString(Device) If MARKUP_START_TAG = "<" And MARKUP_END_TAG = ">" Then MARKUP_START_TAG = "<" MARKUP_END_TAG = ">" End If Next ToString = MARKUP_START_TAG & ATTRIBUTE_NAME_START_PREFIX & ElementName & ATTRIBUTE_NAME_START_POSTFIX & " " & Variables.ToString() & MARKUP_END_TAG & NL & Childs & MARKUP_START_TAG & MARKUP_END & ATTRIBUTE_NAME_END_PREFIX & ElementName & ATTRIBUTE_NAME_END_POSTFIX & MARKUP_END_TAG & NL Else ToString = MARKUP_START_TAG & ElementName & " " & Variables.ToString() & MARKUP_END & MARKUP_END_TAG & NL End If If Device = DV_BROWSER And MARKUP_START_TAG = "<" And MARKUP_END_TAG = ">" Then MARKUP_START_TAG = "<" MARKUP_END_TAG = ">" End If End Function Public Function SetParm(Parm) Variables.Put Parm End Function Public Function GetParm(Name) GetParm = Variables.GetFromName(Name) End Function Public Function AppendChild(Element) Set Element.Parent = Me ArrayAppendObject Children, Element End Function Public Function SaveToFile(Filename) Set objFile = Server.CreateObject("Scripting.FileSystemObject") If objFile.FileExists(Filename) Then objFile.DeleteFile Filename, True Set objStream = objFile.CreateTextFile(Filename, True, False) On Error Resume Next objStream.WriteLine ToString(DV_FILE) objStream.Close End Function Public Function GetFirstChild() If IsArray(Children) Then Set GetFirstChild = Children(0) Else Set GetFirstChild = Nothing End Function End Class %>