'enregistrer le xml au format utf-8 et indenté
Public Sub SaveFormatDocToFileXL(ByVal doc, ByVal FileName As String)
Dim rdrdom As Object, StreamFormaté As Object, wtrFormatted As Object
Set rdrdom = CreateObject("MSXML2.SAXXMLReader.6.0")
Set StreamFormaté = CreateObject("ADODB.Stream")
Set wtrFormatted = CreateObject("MSXML2.MXXMLWriter")
With StreamFormaté
.Open
.Type = 1 'adTypeBinary
With wtrFormatted
.omitXMLDeclaration = False
.standalone = True
.byteOrderMark = False 'If not set (even to False) then
'.encoding is ignored.
.Encoding = "utf-8" 'Even if .byteOrderMark = True
'UTF-8 never gets a BOM.
.indent = True
.output = StreamFormaté
With rdrdom
Set .contentHandler = wtrFormatted
Set .dtdHandler = wtrFormatted
Set .errorHandler = wtrFormatted
.putProperty "http://xml.org/sax/properties/lexical-handler", wtrFormatted
.putProperty "http://xml.org/sax/properties/declaration-handler", wtrFormatted
.Parse doc
End With
End With
If Dir(FileName) <> "" Then Kill FileName
.SaveToFile FileName
.Close
End With
Set rdrdom = Nothing
Set StreamFormaté = Nothing
Set wtrFormatted = Nothing
End Sub