前提・実現したいこと
VBAを利用して、UTF-8のXMLファイル作成を試みています。
発生している問題・エラーメッセージ
MXXMLWriter60を利用して、
Encording= "UTF-8"
と書いているのですが
XMLファイルを出力するとヘッダーには
と表示され、Encordingの表記が抜けてしまいます。
実際の文字コードはUTF-8になっているのですが、なぜか省略されて表示されてしまいます。
UTF-16に設定すると、省略されず正しく表示されます。
該当のソースコード
Sub Xmloutput()
'XML出力用の定義
Dim xmlDoc As MSXML2.DOMDocument60 'XMLドキュメント
Dim xmlDoc2 As New MSXML2.DOMDocument60
Dim rootNode As IXMLDOMNode 'root要素
'xmlオブジェクト
Dim XmlReader As New SAXXMLReader60
Dim XmlWriter As New MXXMLWriter60
XmlWriter.indent = True 'インデント設定
'XMLヘッダー情報
'XmlWriter.omitXMLDeclaration = False
XmlWriter.Encoding = "UTF-8" 'encodingをUTF8へ なぜか表示されない。
XmlWriter.standalone = True
XmlWriter.omitXMLDeclaration = False
Set xmlDoc = New MSXML2.DOMDocument60
Set rootNode = xmlDoc.appendChild(xmlDoc.createNode(NODE_ELEMENT, "test", ""))
Set XmlReader.contentHandler = XmlWriter ''ReaderとWriterを紐づける
XmlReader.Parse xmlDoc.XML '作成したXMLファイルをReaderで読み込む
'読み込んだデータをXMLファイルにいれる
xmlDoc.LoadXML XmlWriter.output
xmlDoc.Save ("test.xml")
End Sub
試したこと
ヘッダー情報を変更するために下記のコードを書いては見ましたが変更されませんでした。
'Set xmlPI = xmlDoc.appendChild(xmlDoc.createProcessingInstruction("xml", "version='1.0' encoding='UTF-8'"))
補足情報(FW/ツールのバージョンなど)
環境:Windows10
Excelバージョン:2019
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/18 05:46
2021/01/18 06:07
2021/01/18 06:42