以下VBA代码生成<?xml version="1.0"?>
作为输出。
Dim XML As New DomDocument
Dim pi As IXMLDOMProcessingInstruction
'.... some code that sets the root element of the document
Set pi = XML.createProcessingInstruction("xml", "version='1.0' encoding='UTF-8'")
XML.insertBefore pi, XML.documentElement
为什么遗漏了encoding="UTF-8"
?
答案 0 :(得分:9)
&LT;?xml的&GT;是不是处理指令。 &lt;?xml?&gt; construct被称为XML declaration,并遵循与实际处理指令不同的规则。创建名为“xml”的PI格式不正确;以“xml”开头的名称为reserved。
要更改所需的prolog格式configure an XMLWriter,设置'version','encoding'或简单地'omitXMLDeclaration'将其完全删除,这是完全正常的,因为1.0和UTF-8是默认值值。
答案 1 :(得分:1)
无论如何,UTF-8是默认编码。您指定的内容是多余的,因此序列化程序可能会省略它。但是,version
字段不是可选字段。如果文件完全具有XML声明,the declaration must include the version
field。