1

これが機能しないのはなぜですか?foreach ループの開始時に null 参照例外エラーが発生する

ページ上のすべての div テキストを取得し、それぞれを自分のコレクションに入れようとしています

Imports HtmlAgilityPack
Imports System.Xml

Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim webGet As HtmlWeb = New HtmlWeb
        Dim htmlDoc As HtmlDocument = webGet.Load("http://www.mysite.com")

        Dim ids As New List(Of String)()

        For Each div As Object In htmlDoc.DocumentNode.SelectNodes("//div")

            ids.Add(div.InnerText)

        Next



    End Sub
End Class

例外

オブジェクト参照がオブジェクト インスタンスに設定されていません。説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外の詳細: System.NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていません。

ソース エラー:

12 行目: Dim ids As New List(Of String)() 13 行目:
14 行目: For Each div As Object In htmlDoc.DocumentNode.SelectNodes("//div") 15 行目:
16 行目: ids.Add(div.インナーテキスト)

4

1 に答える 1

1

あなたのコードは正しいようです。おそらく、URL "http://www.mysite.com" が有効な HTML を返していない可能性があります。

以下のコードは動作します:

Imports HtmlAgilityPack

Public Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim webGet As HtmlWeb = New HtmlWeb
        Dim htmlDoc As HtmlDocument = webGet.Load("http://stackoverflow.com/q/11528387/1350308")

        Dim ids As New List(Of String)()
        TextBox1.Text = ""
        For Each div As HtmlNode In htmlDoc.DocumentNode.SelectNodes("//div")
            TextBox1.Text += div.Id + Environment.NewLine
        Next
    End Sub

End Class

TextBox1 の結果は次のとおりです。

noscript-padding
notify-container
overlay-header
custom-header

header
portalLink
topbar
hlinks
hsearch

hlogo
hmenus


content

question-header
mainbar
question
adzerk1

















comments-11528387


answers
answers-header

tabs
answer-11528559








comments-11528559

post-editor

wmd-button-bar

draft-saved
draft-discarded
wmd-preview









sidebar
newuser-box



adzerk2
hireme



























feed-link
feed-link-text

prettify-lang
footer

footer-menu
footer-sites
footer-flair
svnrev
copyright
noscript-warning

完全なソース: Q11528387WebApp.7z

于 2012-07-17T18:23:50.413 に答える