VBscript XML格式化问题

时间:2016-12-01 03:07:56

标签: vbscript

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

0 个答案:

没有答案