vb.net - 如何在将 XML 响应文本解析为 HTMLDoc.body.innerHTML 时修复 VB.net 中的“对象引用未设置为对象的实例”
问题描述
我正在尝试使用 Visual Studio 将 XML 响应文本加载到 Windows 窗体应用程序中的 HTML 对象中,但它会引发错误
对象引用未设置为对象的实例
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim XMLReq As MSXML2.XMLHTTP60 = New MSXML2.XMLHTTP60
Dim HTMLDoc As mshtml.HTMLDocument = New mshtml.HTMLDocument
Dim Table As MSHTML.IHTMLElement
URL = "https://tt.wiki.com/search?"
XMLReq.open("GET", URL, False)
XMLReq.send()
If XMLReq.status <> 200 Then
MsgBox("Error" & vbNewLine & XMLReq.status & " - " & XMLReq.statusText)
Exit Sub
End If
Dim wb As WebBrowser = New WebBrowser
HTMLDoc = wb.Document.DomDocument
HTMLDoc.body.innerHTML = XMLReq.responseText //object reference error occuring here//
Table = HTMLDoc.getElementById("search_results")
End sub
错误发生在以下行:
HTMLDoc.body.innerHTML = XMLReq.responseText
解决方案
经过这么多尝试,我终于找到了答案....需要在访问其 body.innerHTML 方法之前将一些 HTML 代码分配给 HTMLDoc 对象。下面是代码......它对我来说很好用`
Dim XMLReq As MSXML2.XMLHTTP60 = New MSXML2.XMLHTTP60
Dim HTMLDoc As mshtml.HTMLDocument = New mshtml.HTMLDocument
Dim HTMLDoc1 As mshtml.IHTMLDocument = HTMLDoc
Dim Table As MSHTML.IHTMLElement
URL = "https://tt.wiki.com/search?"
XMLReq.open("GET", URL, False)
XMLReq.send()
If XMLReq.status <> 200 Then
MsgBox("Error" & vbNewLine & XMLReq.status & " - " & XMLReq.statusText)
Exit Sub
End If
HTMLDoc1.write("<html><body>test</body></html>")
HTMLDoc1.close()
HTMLDoc = HTMLDoc1
HTMLDoc.body.innerHTML = XMLReq.responseText
Table = HTMLDoc.getElementById("search_results")`
推荐阅读
- c - 无法在 C 中使用 SDL 2 lib 的字体获得的纹理上设置混合模式
- bazel - 选择性地部署由 Bazel 构建的工件
- html - 如何在 React 中使导航延伸到整个宽度?
- html - 有没有办法使用 CSS 在动画 SVG 上创建静态渐变?
- css - 按钮占用 flexbox div 的高度
- reactjs - 如何将 React 应用程序与使用 Laravel 创建的数据库连接 - 我尝试使用代理但收到错误 405
- r - 在 plotly 的点 0 处添加一个 3d 曲面
- excel - Excel 2013 根据单元格中的值更改单元格的颜色
- c - char array[100]; 有什么区别?和 char 数组 [100] = "";?
- angular - 如何在 Angular 8 中设置输入值?