我正在使用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:\out\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>