Как исправить «ссылка на объект не установлена ​​для экземпляра объекта» в VB.net при преобразовании текста ответа XML в HTMLDoc.body.innerHTML - PullRequest
0 голосов
/ 31 декабря 2018

Я пытаюсь загрузить текст ответа XML в объект HTML в приложении форм Windows, используя Visual Studio, но выдает ошибку

Ссылка на объект не установлена ​​на экземпляр объекта

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

1 Ответ

0 голосов
/ 21 января 2019

наконец, после стольких попыток, я нашел ответ на этот вопрос ... необходимо присвоить некоторый HTML-код объекту HTMLDoc перед доступом к его методу body.innerHTML.ниже код .... у меня работает нормально`

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")`
...