我正在使用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文件时出错:系统找不到指定的对象。
如果我从文件名中手动删除%符号,则文件加载正常。但是,我真的需要保留原始文件名。
任何建议都将不胜感激。
麦克
答案 0 :(得分:1)
终于明白了。在加载之前需要对文件名进行urlencode。
而不是上面的这一行:
objXML.Load filename
我将其更改为以下内容:
dim encodedName as String
encodedName = WorksheetFunction.EncodeURL(filename)
objXML.Load encodedName
谢谢, 麦克
答案 1 :(得分:0)
此外,使用%25
转义百分号:
filename = "HelloWorld%252Ecom.xml"