爲什麼不用這個代碼返回通用列表中的任何id。該網頁在div元素中肯定有ID。如果我斷點了,那麼在DocumentNode.SelectNodes
和htmlDoc.DocumentNode.SelectNodes("//div[@id]")
屬性Id
中沒有ID不起作用。我正在使用.NET 2.0和HtmlAgilityPack.dll 1.4.0.0。html敏捷包不會返回任何ids,即使該頁面有ids?
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
你需要更具體。在循環內是否有'div.Id'返回null的問題?或者是'SelectNodes'返回一個空列表的問題,所以它永遠不會進入循環? – 2012-07-19 13:34:16
抱歉 - SelectNodes沒有任何id值 – 2012-07-19 13:40:10
因此,'htmlDoc.DocumentNode.SelectNodes(「// div/@ id」)。Count'爲零? – 2012-07-19 13:41:15