HtmlAgilityPack - 循环遍历节点时出错。没有意义

时间:2011-12-31 17:40:27

标签: vb.net

我正在尝试获取以下所有节点,但我收到错误消息:

重载解析失败,因为没有可访问的'GetAttributeValue'接受此数量的参数。

Dim doc As New HtmlDocument() 
doc.LoadHtml("shaggybevo.com/board/register.php") 
Dim docNode As HtmlNode = doc.DocumentNode 
Dim nodes As HtmlNodeCollection = docNode.SelectNodes("//input")

For Each node As HtmlNode In nodes
    Dim id As String = node.GetAttributeValue("id")
Next

有关我收到此错误消息的原因的任何想法?感谢

1 个答案:

答案 0 :(得分:0)

您需要提供默认值作为GetAttributeValue的第二个参数:

Dim id As String = node.GetAttributeValue("id", "")

更新更新的问题

除了上述修复,您还错误地检索了HtmlDocument。 HtmlDocument.Load将加载文件或HTML字符串,而不是从Web服务器检索文件。

您需要修改代码以使用HtmlWeb从URL获取数据。替换以下行:

Dim doc As New HtmlDocument() 
doc.LoadHtml("shaggybevo.com/board/register.php") 

用这些:

Dim doc As HtmlDocument
Dim web As New HtmlWeb

doc = web.Load("http://shaggybevo.com/board/register.php")