文件名具有URL编码时,VBA XML文件加载错误

时间:2016-01-20 02:43:58

标签: xml vba

我正在使用VBA并使用Msxml2.DOMDocument.6.0来读取和解析XML文件。它主要工作,除了一些文件名在文件名中有URL样式编码。例如,文件名如下:

的HelloWorld%2Ecom.xml

我尝试加载时,代码无法找到该文件。这是我的代码的简化版本:

Dim filename as String
filename = "HelloWorld%2Ecom.xml" ' This variable is actually populated dynamically
Dim objXML As Variant
Set objXML = CreateObject("Msxml2.DOMDocument.6.0")
objXML.async = True
objXML.Load filename

我在加载操作期间得到的具体错误是:

加载XML文件时出错:系统找不到指定的对象。

如果我从文件名中手动删除%符号,则文件加载正常。但是,我真的需要保留原始文件名。

任何建议都将不胜感激。

麦克

2 个答案:

答案 0 :(得分:1)

终于明白了。在加载之前需要对文件名进行urlencode。

而不是上面的这一行:

objXML.Load filename

我将其更改为以下内容:

dim encodedName as String
encodedName = WorksheetFunction.EncodeURL(filename)
objXML.Load encodedName

谢谢, 麦克

答案 1 :(得分:0)

此外,使用%25转义百分号:

filename = "HelloWorld%252Ecom.xml"