我有一个VBA程序,它使用IE Automation以经典的方式查询网站: Const URL =" xxxx" Dim ieApp作为InternetExplorer Dim oHTMLDoc作为HTMLDocument
ieApp.Navigate URL
Do While ieApp.Busy: DoEvents: Loop
Do Until ieApp.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop
Set oHTMLDoc = ieApp.Document
.....etc
由于某些原因,我必须使用InternetExplorer对象 - 我无法使用MSXML2库来查询网站。在程序的后面,查询的结果是纯XML - 使用HTML例程解析很麻烦。
所以我的简单问题是:如何将HTMLDocument传输到MSXML2.DOMDocument?
Dim oXMLDoc As MSXML2.DOMDocument
Set oXMLDoc = oHTMLDoc 'Fails
谢谢。
答案 0 :(得分:0)
试试这个
'add reference Microsoft XML, v6.0
Public Sub DownloadFile()
Dim objWHTTP As Object
Dim strPath As String
Dim arrData() As Byte
Dim lngFreeFile As Long
On Error Resume Next
Set objWHTTP = CreateObject("WinHTTP.WinHTTPrequest.5")
If Err.Number <> 0 Then
Set objWHTTP = CreateObject("WinHTTP.WinHTTPrequest.5.1")
End If
On Error GoTo 0
URL = "Enter URL Here"
objWHTTP.Open "GET", URL, False
objWHTTP.send
arrData = objWHTTP.responseBody
strData = StrConv(arrData, vbUnicode)
Dim fedbook As New MSXML2.DOMDocument60
fedbook.LoadXML strData
答案 1 :(得分:0)
感谢jdweng我有答案:
Dim ieApp As InternetExplorer
Dim oHTMLDoc As HTMLDocument
Dim sXML as String
ieApp.Navigate *URL*
Do While ieApp.Busy: DoEvents: Loop
Do Until ieApp.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop
Set oHTMLDoc = ieApp.Document
Set oXML = New MSXML2.DOMDocument60
sXML = oHTMLDoc.DocumentElement.outerHTML
If Not oXML.LoadXML(sXML) Then _
Err.Raise oXML.parseError.ErrorCode, , oXML.parseError.reason
我可以在我的oXML文档中享受XML!再次感谢。