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 に答える