从xml文件 - VBA中删除垃圾字符(可能是BOM)

时间:2017-06-18 23:00:07

标签: xml vba excel-vba base64 excel

我正在使用以下代码从解码的Base64字符串中编写XML文件:

'More Code Above
btArr = MyFoundString

Set DM = CreateObject("Microsoft.XMLDOM")
Set EL = DM.createElement("tmp")
EL.DataType = "bin.base64"

EL.Text = CStr(btArr)
decodeBase64 = EL.nodeTypedValue

XMLFileName = FLDR_NAME & XMLFileNameF


Open XMLFileName For Binary Access Write As #1
Put #1, 1, decodeBase64
Close #1

文件正确写入,除了出现在文件开头的12个垃圾字符,因此使xml文件无法使用:

Junk Characters

每次不同的12个字符,但每个创建的文件都有:(

经过研究,我了解这可能与格式编码有关,并且这些字符可能构成字节顺序标记(BOM)。

如何删除这些字符?

非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

我明白了。这确实是在写文件的方式。

解决方案是改变以下部分:

Open XMLFileName For Binary Access Write As #1
Put #1, 1, decodeBase64
Close #1

要:

Set BinaryStream = CreateObject("ADODB.Stream")

BinaryStream.Type = 1

BinaryStream.Open
BinaryStream.Write decodeBase64
BinaryStream.SaveToFile XMLFileName, 2

在此之后,所有文件都使用ADODB流方法而不是二进制访问写入正确写入,没有任何垃圾字符。