如何在VBA Excel中打开和保存XML UTF8 Unix文件?

时间:2019-03-14 13:47:47

标签: excel xml vba dom

我正在尝试对在Excel VBA的unix系统上创建的xml文件进行一些更改。

我正在使用以下代码:

Sub TestXML2()
    Dim XDoc As Object    
    Set XDoc = CreateObject("MSXML2.DOMDocument")
    XDoc.Load ("C:\test\input.xml")
    XDoc.Save ("C:\test\output.xml")
    Set XDoc = Nothing
End Sub

当我运行此代码时,代码会因错误而停止: x80004005无法以ASCII编码(从其他语言翻译)保存字符。 输出文件的一部分已保存,但是当我比较输入文件和输出文件时,有2个区别:

  1. 新文件的行尾为“ crlf”,输入的行数仅为“ lf”。
  2. 在新文件中,非ASCII字符转换为ASCII字符,即:'&#252';转换为u(应为ü)。

1 个答案:

答案 0 :(得分:0)

这是我的解决方案。行尾仍从LF转换为CRLF,但我可以接受。

Sub TestXML2()
    Dim XDoc As Object    
    Set XDoc = CreateObject("MSXML2.DOMDocument.6.0")
    XDoc.preserveWhiteSpace = True
    XDoc.Load ("C:\test\input.xml")
    XDoc.Save ("C:\test\output.xml")
    Set XDoc = Nothing
End Sub