6

I'm writing VBA to export xml. I use SAXXMLReader because I need pretty indented output.

This is what I want the declaration to look like:

<?xml version="1.0" encoding="UTF-8"?>

This is what it turns out as:

<?xml version="1.0" encoding="UTF-16" standalone="no"?>

Why is SAX ignoring my encoding selection and how do I force it to use 8.

Sub XML_Format_Indent_Save(xmlDoc1 As MSXML2.DOMDocument60, strOutputFile As String)
    Dim xmlWriter As MSXML2.MXXMLWriter60
    Dim strWhole As String

    Set xmlWriter = CreateObject("MSXML2.MXXMLWriter")
    xmlWriter.omitXMLDeclaration = False
    xmlWriter.Indent = True
    xmlWriter.Encoding = "utf-8"
    With CreateObject("MSXML2.SAXXMLReader")
        Set .contentHandler = xmlWriter
        .putProperty "http://xml.org/sax/properties/lexical-handler", xmlWriter
        .Parse xmlDoc1
    End With
    strWhole = xmlWriter.output
    ExportStringToTextFile strOutputFile, strWhole
End Sub

1 Answers1

0

From what I read in another post, you need to set .byteOrderMark to either true or false, otherwise the .encoding is ignored.

Vince42
  • 216
  • 1
  • 10