Я использую VBScript для записи данных формы в файл XML:
Set xmlDoc = CreateObject("Microsoft.XMLDOM")
Set objRoot = xmlDoc.CreateElement("root")
xmlDoc.AppendChild objRoot
Set objRecord = xmlDoc.CreateElement("document")
objRoot.AppendChild objRecord
Set objElement = xmlDoc.CreateElement("field")
objElement.SetAttribute "level", "system"
objElement.SetAttribute "name", "Document Filename with Full Path"
objElement.SetAttribute "value", "C:\out\test.pdf"
objrecord.AppendChild(objElement)
Set objIntro = xmlDoc.CreateProcessingInstruction("xml", "version='1.0'")
xmlDoc.InsertBefore objIntro, xmlDoc.ChildNodes(0)
Call ParseAndSave("C:\Temp\test.xml", xmlDoc)
Function ParseAndSave(filePath, xmlDoc)
Set xmlWriter = CreateObject("MSXML2.MXXMLWriter")
Set xmlReader = CreateObject("MSXML2.SAXXMLReader")
Set xmlStream = CreateObject("ADODB.Stream")
xmlStream.Open
xmlStream.Charset = "UTF-8"
xmlWriter.Output = xmlStream
xmlWriter.Indent = True
xmlWriter.Encoding = "UTF-8"
Set xmlReader.ContentHandler = xmlWriter
Set xmlReader.DTDHandler = xmlWriter
Set xmlReader.ErrorHandler = xmlWriter
xmlReader.PutProperty "http://xml.org/sax/properties/lexical-handler", xmlWriter
xmlReader.PutProperty "http://xml.org/sax/properties/declaration-handler", xmlWriter
xmlReader.Parse xmlDoc
xmlWriter.Flush
xmlStream.SaveToFile filePath, 2
xmlStream.Close
Set xmlStream = Nothing
Set xmlWriter = Nothing
Set xmlReader = Nothing
End Function
Это работает, но вывод не форматируется, как ожидалось от файла XML:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root>
<document>
<field level="system" name="Document Filename with Full Path" value="C:\out\test.pdf"/>
</document>
</root>
ожидаемый результат.Вся новая строка выровнена по левому краю и между именем и значением получила пробел
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root>
<document>
<field level = "system" name = "Document Filename with Full Path" value = "C:\out\test.pdf"/>
</document>
</root>
Мне нужно добавить узел в файл XML в VBScript без перезаписи старого узла.