如何强制MSXML2加载非UTF-8编码的XML

时间:2017-05-12 18:13:53

标签: xml vba character-encoding

我需要使用MSXML2.DOMDocument加载A*x编码的XML文件,但该文件不包含ANSI行。 XML解析器失败并显示<?xml version="1.0" encoding="Windows-1250"?>,因为XML数据包含一些国家字符。

我尝试添加这样的处理指令,但它没有做任何事情。

An invalid character was found in the text content

在调用.load方法之前,有没有办法强制MSXML2使用用户定义的编码?

1 个答案:

答案 0 :(得分:0)

我发现了这种解决方法:改为使用.LoadXML(strXML)方法。 您可以通过以下方式添加处理信息:

Dim MyXML As String
Open "C:\Pass.XML" For Binary As #1
MyXML = Space$(LOF(1))
Get #1, , MyXML
Close #1

MyXML = "<?xml version='1.0' encoding='windows-1250'?>" & vbCrLf & MyXML

If xDoc.loadXML(MyXML) Then
    Debug.Print "Success"
Else
    Debug.Print xDoc.parseError.reason
End If