" & vbcrlf & _
"" & vbcrlf & _
"" & vbcrlf & _
"" & vbcrlf & _
""
Const ForWriting = 2
dim fs, file
Set fs = CreateObject("Scripting.FileSystemObject")
Set file = fs.OpenTextFile(strfilename, ForWriting, True)
file.writeline Convert2Text(txtxsl)
file.Close
end sub
' ================================================== Auxilary procedures and classes ==========================
class XMLTextWriter
'~ usage in VBScript. Please define StyleSheet and filename first and than start writing the data
'~ set xmlWriter = new XmlTextWriter
'~ xmlWriter.filename = "filename.xml"
'~ xmlWriter.Indentation = 4
'~ call xmlWriter.WriteStylesheet("stylesheet.xsl")
'~ call xmlWriter.WriteStartElement("Root")
'~ call xmlWriter.WriteElementString("starttime", now())
'~ call xmlWriter.WriteEndElement
'~ call xmlWriter.close
dim intIndentation
dim level, tagopen
dim Stack(100) ' i have problems using redim, so i use a fixed number für the depth
dim fs, xmlfile
private Sub Class_Initialize
intIndentation = 4
level = 0
tagopen = false
End Sub
public Property let filename(wert)
Set fs = CreateObject("Scripting.FileSystemObject")
Set xmlfile = fs.OpenTextFile(wert, 2, True) ' 2 = ForWriting
xmlfile.write "" & vbcrlf
End Property
public Property let Indentation(wert)
intIndentation = wert
End Property
sub Writestylesheet (item)
'*
xmlfile.write "" & vbcrlf
end sub
sub WriteStartElement(item)
xmlfile.write vbcrlf & space(intIndentation*level) & "<" & quote(trim(item)) ' & ">" ' Ende offen
tagopen = true
stack(level) = item
level = level + 1
end sub
sub WriteAttributeString(item,wert) ' ergänzt eine ID zum aktuellen Element
if tagopen then
xmlfile.write " id=""" & Quote(wert) & """"
else
wscript.echo "XMLWriter: Tag not open"
wscript.quit(255)
end if
end sub
sub WriteElementString(item,wert) ' wert
if tagopen then
xmlfile.write ">" : tagopen = false
end if
xmlfile.write vbcrlf & space(intIndentation*level)
xmlfile.write "<" & quote(trim(item)) & ">"
xmlfile.write quote(wert)
xmlfile.write "" & quote(item) & ">"
end sub
sub WriteEndElement
if tagopen then
xmlfile.write ">" : tagopen = false
end if
level = level - 1
xmlfile.write vbcrlf & space(intIndentation*level) & "" & quote(stack(level))& ">"
end sub
private function quote(wert)
' 308060 HOW TO: Locate and Replace Special Characters in an XML File with Visual Basic .NET
' Converts non printable characters to "X" , so that Textfile is working
dim loopcount, tempwert, inttest
tempwert=""
for loopcount = 1 to len(wert) ' replace all unprintable characters maybe easier and faster with RegEx
inttest = ascw(mid(wert,loopcount,1))
if ((inttest>=32) and (inttest<127)) or (inttest=10) or (inttest=13) or (inttest=9) then
tempwert = tempwert & chr(inttest) ' printable Character or CR LF TAB
else
tempwert = tempwert & "X"
end if
next
if len (tempwert ) > 0 then
tempwert=replace(tempwert ,"&","&")
tempwert=replace(tempwert ,"<","<")
tempwert=replace(tempwert ,">",">")
tempwert=replace(tempwert ,"""",""")
tempwert=replace(tempwert ,"'","'")
end if
quote=tempwert
end function
sub close() : xmlfile.Close : end sub
end class
class debugwriter
' Generic Class für writing debugging information
private objIE, file, fs, debugfilename, status, strline
private debuglevelIE , debuglevelfile, debugleveleventlog, debuglevelConsole
private Sub Class_Initialize
status = "active" : strline = "" : debugfilename = ""
debuglevelIE = -1
debuglevelfile = -1
debugleveleventlog = -1
debuglevelConsole = -1
End Sub
private Sub Class_Terminate()
if isobject(OBJIE) then
objie.document.write "