MSXML2.DOM文档加载函数在VBA中失败
我已经为下面的问题挣扎了一段时间,但还没有找到解决方案 有一个iShare页面包含一个XML文件,我想使用VBA代码下载该文件,然后稍后处理该XML文件并保存到MS Access数据库中 我已经使用下面的代码大约4年了,它工作得非常完美,没有任何问题。但本周它突然停止了工作。 你知道为什么吗 守则:MSXML2.DOM文档加载函数在VBA中失败,vba,ms-access,Vba,Ms Access,我已经为下面的问题挣扎了一段时间,但还没有找到解决方案 有一个iShare页面包含一个XML文件,我想使用VBA代码下载该文件,然后稍后处理该XML文件并保存到MS Access数据库中 我已经使用下面的代码大约4年了,它工作得非常完美,没有任何问题。但本周它突然停止了工作。 你知道为什么吗 守则: Private Function GetRequests() As Boolean On Error GoTo ErrHandler Dim oDoc As MSXML2.DOMDocum
Private Function GetRequests() As Boolean
On Error GoTo ErrHandler
Dim oDoc As MSXML2.DOMDocument
Dim Url As String
Dim sFileName As String
Set oDoc = New MSXML2.DOMDocument
oDoc.async = False
Url = cUrlDatabase & "/" & cApplicationName & "/In/" & cReqXmlFile
UpdateStatus "Loading " & cReqXmlFile
If Not oDoc.Load(Url) Then
c_sLastError = "Could not load XML " & Url
GoTo EndProc
End If
sFileName = sPath & "\Data\requests.xml"
oDoc.Save sFileName
GetRequests = True
End Function
代码在
oDoc.Load(Url)
部分失败,返回为false。对于其他找到此帖子的人:
xml解析器现在已经实现了不同的错误类型(请参阅)。
您必须使用以下代码
Set objXML = CreateObject("Msxml2.DOMDocument.6.0")
ObjXML.async=true
objXML.load "/path/to/xml"
If objXML.parseError.errorCode <> 0 Then
MsgBox "Error was " + objXML.parseError.reason
End If
Set objXML=CreateObject(“Msxml2.DOMDocument.6.0”)
ObjXML.async=true
objXML.load“/path/to/xml”
如果objXML.parseError.errorCode为0,则
MsgBox“错误为”+objXML.parseError.reason
如果结束
这将有助于您调试.xml文件。对于找到此帖子的其他人: xml解析器现在已经实现了不同的错误类型(请参阅)。 您必须使用以下代码
Set objXML = CreateObject("Msxml2.DOMDocument.6.0")
ObjXML.async=true
objXML.load "/path/to/xml"
If objXML.parseError.errorCode <> 0 Then
MsgBox "Error was " + objXML.parseError.reason
End If
Set objXML=CreateObject(“Msxml2.DOMDocument.6.0”)
ObjXML.async=true
objXML.load“/path/to/xml”
如果objXML.parseError.errorCode为0,则
MsgBox“错误为”+objXML.parseError.reason
如果结束
这将帮助您调试.xml文件。下面是一个如何收集错误详细信息的示例:
Dim xDoc As MSXML.DOMDocument
Set xDoc = New MSXML.DOMDocument
If xDoc.Load("C:\My Documents\cds.xml") Then
' The document loaded successfully.
' Now do something intersting.
Else
' The document failed to load.
Dim strErrText As String
Dim xPE As MSXML.IXMLDOMParseError
' Obtain the ParseError object
Set xPE = xDoc.parseError
With xPE
strErrText = "Your XML Document failed to load" & _
"due the following error." & vbCrLf & _
"Error #: " & .errorCode & ": " & xPE.reason & _
"Line #: " & .Line & vbCrLf & _
"Line Position: " & .linepos & vbCrLf & _
"Position In File: " & .filepos & vbCrLf & _
"Source Text: " & .srcText & vbCrLf & _
"Document URL: " & .url
End With
MsgBox strErrText, vbExclamation End If
Set xPE = Nothing
End If
.以下是如何收集错误详细信息的示例:
Dim xDoc As MSXML.DOMDocument
Set xDoc = New MSXML.DOMDocument
If xDoc.Load("C:\My Documents\cds.xml") Then
' The document loaded successfully.
' Now do something intersting.
Else
' The document failed to load.
Dim strErrText As String
Dim xPE As MSXML.IXMLDOMParseError
' Obtain the ParseError object
Set xPE = xDoc.parseError
With xPE
strErrText = "Your XML Document failed to load" & _
"due the following error." & vbCrLf & _
"Error #: " & .errorCode & ": " & xPE.reason & _
"Line #: " & .Line & vbCrLf & _
"Line Position: " & .linepos & vbCrLf & _
"Position In File: " & .filepos & vbCrLf & _
"Source Text: " & .srcText & vbCrLf & _
"Document URL: " & .url
End With
MsgBox strErrText, vbExclamation End If
Set xPE = Nothing
End If
.对于任何其他正在努力解决这个问题的人,我发现这个错误是由以VBA(一些奇怪的E符号)无法解析的格式编码的文本引起的。objXML在.load之后什么都不是。我相信有很多可能的原因,但我会分享我的发现,以防这对某人有所帮助。感谢上面这些家伙的错误处理程序 对于其他任何一个正在努力解决这个问题的人来说,我发现这个错误是由用VBA(一些奇怪的E符号)无法解析的格式编码的文本引起的。objXML在.load之后什么都不是。我相信有很多可能的原因,但我会分享我的发现,以防这对某人有所帮助。感谢上面这些家伙的错误处理程序 嘿,约翰,你找到解决办法了吗?我也在苦苦挣扎!我发现我的xml文档不正确。我忘了合上一个标签。。。一定是嘿,约翰,你找到解决办法了吗?我也在苦苦挣扎!我发现我的xml文档不正确。我忘了合上一个标签。。。一定是这样