3

我有一个简单的 XML 文件,其中包含我的 VBA 应用程序的当前版本号。在应用程序初始化时,我调用该GetCurrentVersionNumber()函数来获取该版本号。问题是,当我更改服务器上的 XML 文件时,VBA 无法识别它。它似乎正在读取 XML 文件的缓存版本。

VBA 中有没有办法防止正在加载的 XML 文件被缓存?或者,是否有另一种解决方法?

这是功能:

Function GetCurrentVersionNumber() As String

    Dim doc As MSXML2.DOMDocument60
    Set doc = New MSXML2.DOMDocument60

    doc.async = False
    If Not doc.Load("http://mywebsite.com/myfile.xml") Then
        Debug.Print "Unable to retrieve current application version."
        GetCurrentVersionNumber = ""
        Exit Function
    End If
    GetCurrentVersionNumber = doc.SelectSingleNode("/Application/Version").Text

End Function

如果我转到我的默认浏览器 (Chrome),导航到 XML 文件,然后按 Shift+F5 强制重新加载,此后 VBA 应用程序将得到更新。

4

1 回答 1

3

一种方法是在 URL 的末尾附加一个(随机)虚拟查询字符串。这将“强制”重新获取(因为 URL 唯一性考虑了查询字符串)

Dim qs as string
qs = Cstr(rnd()*1e6)

If Not doc.Load("http://mywebsite.com/myfile.xml?" & qs) Then
...
于 2012-09-11T17:32:59.233 回答