加载的XML文件被缓存,不会更新

时间:2012-09-11 17:00:21

标签: vba excel-vba excel

我有一个简单的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应用程序会更新。

1 个答案:

答案 0 :(得分:3)

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

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

If Not doc.Load("http://mywebsite.com/myfile.xml?" & qs) Then
...