6

以下 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"左撇子?

4

2 回答 2

9

<?xml?>不是处理指令。<?xml?> 构造称为XML 声明,它遵循与实际处理指令不同的规则。创建名称为“xml”的 PI 格式不正确;以“xml”开头的名称是保留的。

要更改序言的格式,您需要配置一个 XMLWriter,设置 'version'、'encoding' 或简单地 'omitXMLDeclaration' 以完全删除它,这非常好,因为 1.0 和 UTF-8 是默认值。

于 2009-02-12T15:34:42.930 回答
2

无论如何,UTF-8 是默认编码。您指定的内容是多余的,因此序列化程序可能会忽略它。但是,该version字段不是可选字段。如果文件有 XML 声明,则声明必须包含version字段

于 2009-02-12T13:29:36.677 回答