option explicit dim xmlWriter set xmlWriter = new XmlTextWriter xmlWriter.filename = "filename.xml" xmlWriter.Indentation = 4 wscript.echo "Stylesheet" call xmlWriter.WriteStylesheet("stylesheet.xsl") wscript.echo "--" & vbcrlf & xmlwriter.getformattedxml & vbcrlf& "--" wscript.echo "Root" call xmlWriter.WriteStartElement("Root") call xmlWriter.WriteStartElement("sub1") wscript.echo "--" & vbcrlf & xmlwriter.getformattedxml & vbcrlf& "--" wscript.echo "Sonderzeichen" call xmlWriter.WriteElementString("test", "aäöüäöÜß<>""'&;") wscript.echo "Starttime" call xmlWriter.WriteElementString("starttime", now()) wscript.echo "Endtime" call xmlWriter.WriteElementString("endtime", "END") call xmlWriter.WriteAttributeString ("id","wert") wscript.echo "End" call xmlWriter.WriteEndElement call xmlWriter.WriteStartElement("sub2") wscript.echo "--" & vbcrlf & xmlwriter.getformattedxml & vbcrlf& "--" wscript.echo "Starttime" call xmlWriter.WriteElementString("tag3", now()) call xmlWriter.WriteStartElement("sub22") wscript.echo "--" & vbcrlf & xmlwriter.getformattedxml & vbcrlf& "--" wscript.echo "Starttime" call xmlWriter.WriteElementString("tag3", now()) call xmlWriter.DeleteEndElement call xmlWriter.WriteStartElement("sub23") wscript.echo "--" & vbcrlf & xmlwriter.getformattedxml & vbcrlf& "--" wscript.echo "Starttime" call xmlWriter.WriteEndElement call xmlWriter.WriteEndElement call xmlWriter.WriteStartElement("sub2") wscript.echo "--" & vbcrlf & xmlwriter.getformattedxml & vbcrlf& "--" wscript.echo "Starttime" call xmlWriter.WriteEndElement call xmlWriter.WriteEndElement call xmlWriter.close wscript.echo "--" & vbcrlf & xmlwriter.getxml & vbcrlf& "--" ' wscript.echo "--" & vbcrlf & xmlwriter.getprettyxml & vbcrlf& "--" '~ xmlWriter.makeprettyxml wscript.echo "--" & vbcrlf & xmlwriter.getxml & vbcrlf& "--" 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 xmlfilename 'stores the filename dim xmldom 'DOM Object dim xmlparent 'currentNode dim xmlroot 'RootNode dim xmlobject 'PArent of currentNode dim intIndentation '~ xmlfile.write "" & vbcrlf private Sub Class_Initialize dim xmldeclaration Set xmlDom = CreateObject("Microsoft.XMLDOM") xmlDom.loadxml "" set xmlobject = xmlDom End Sub public Property let filename(wert) xmlfilename = wert End Property public Property let Indentation(wert) ' only für Backwards compatibility End Property public Property let Formatting(wert) ' writer.Formatting = Formatting.Indented ' Funktioniert nur mit .nEtg ? End Property sub Writestylesheet (item) dim stylePI Set stylePI = xmlDom.createProcessingInstruction("xml-stylesheet", "type=""text/xsl"" href="""&item & """") xmlDom.appendChild(stylePI) end sub sub WriteStartElement(item) dim xmlobject2 set xmlobject2 = xmlDom.createElement(item) xmlobject.appendchild xmlobject2 set xmlobject = xmlobject2 end sub sub WriteAttributeString(name,value) ' ergänzt eine ID zum aktuellen Element xmlobject.setAttribute name, value end sub sub WriteElementString(item,wert) ' add XML tag and Data dim xmldata set xmldata = xmlDom.createElement(item) xmldata.text = wert xmlobject.appendchild(xmldata) end sub sub WriteEndElement ' Schliesse den aktuellen Client und gehe ein objekt höher set xmlobject = xmlobject.parentnode end sub sub DeleteEndElement ' Entferne den letzten Client komplett dim xmlobject2 set xmlobject2 = xmlobject set xmlobject = xmlobject.parentnode xmlobject.removechild(xmlobject2) end sub function getXML ' gebe die aktuelle XML-Information unformtiert aus getxml = xmldom.xml end function function LoadXML(strxml) ' ersetze die Information durch eine neue XML-Information xmldom.loadXML(strxml) end function sub Flush() ' Schreibe die aktuelle XML-Struktur als Datei heraus xmldom.LoadXML getFormattedXML xmldom.save(xmlfilename) end sub function getFormattedXML ' Gebe die XML-Struktur formatiert und besser lesbar aus dim oStylesheet set oStylesheet = CreateObject("Microsoft.XMLDOM") oStylesheet.async = False oStylesheet.loadXML ("" & vbcrlf & _ "" & vbcrlf & _ "" & vbcrlf & _ "" & vbcrlf & _ " " & vbcrlf & _ " " & vbcrlf & _ " " & vbcrlf & _ "" & vbcrlf & _ "") getFormattedXML = xmlDOM.transformNode(oStylesheet) end function sub close() xmldom.LoadXML getFormattedXML xmldom.save(xmlfilename) end sub end class