0

このコードがジェネリック リストの ID を返さないのはなぜですか。Web ページの div 要素には必ず id があります。ポイントを壊すと、プロパティIdにIDがなく、機能DocumentNode.SelectNodeshtmlDoc.DocumentNode.SelectNodes("//div[@id]")ません。.NET 2.0 と HtmlAgilityPack.dll 1.4.0.0 を使用しています。

Imports HtmlAgilityPack

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 listHtmlFound As List(Of String) = New List(Of String)
        Dim webGet As HtmlWeb = New HtmlWeb
        Dim htmlDoc As HtmlDocument = webGet.Load("http://stackoverflow.com/q/11528387/1350308")
        htmlDoc.OptionUseIdAttribute = True
        'Dim s As Object = htmlDoc.DocumentNode.SelectNodes("//div/@id").Count
        For Each div As HtmlNode In htmlDoc.DocumentNode.SelectNodes("//div")
            listHtmlFound.Add(div.Id)
        Next
    End Sub
End Class
4

1 に答える 1

1

これは必要ありません:

 htmlDoc.DocumentNode.SelectNodes("//div[@id]")

すべての属性自体ではなく<div>、属性を持つすべてのノードを選択するには?idid

編集
IdプロパティがHtmlNode機能しない場合は、いつでもAttributesプロパティを使用できます。それをループして、のプロパティを見つけてName = "id"使用しValueます。

于 2012-07-19T13:16:23.957 に答える