为什么我得到一个DocumentElement不存在的错误?

时间:2013-10-29 23:13:42

标签: c#

private void Extract(string url)
{
    HtmlWeb hw = new HtmlWeb();
    HtmlDocument doc = hw.Load(url);
    foreach (HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href]"))
    {

    }
}

我想从html文件中提取/解析所有链接。 但我得到一个错误:

  

错误8'HtmlAgilityPack.HtmlDocument'不包含定义   对于'DocumentElement'而没有扩展方法'DocumentElement'   接受'HtmlAgilityPack.HtmlDocument'类型的第一个参数   可以找到(你错过了使用指令或程序集   引用?)

编辑**

我这样做了:

private void Extract(string url)
        {
            StreamWriter w = new StreamWriter(@"d:\localpath\test.txt");
            HtmlWeb hw = new HtmlWeb();
            HtmlDocument doc = hw.Load(url);
            foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
            {  
                w.WriteLine(link);
            }
            w.Close();
        }

并使用它:

Extract(@"d:\localpath\Sat24_Cloudsheight_Europe.html");

但是我得到的是很多次同一条线:

HtmlAgilityPack.HtmlNode HtmlAgilityPack.HtmlNode HtmlAgilityPack.HtmlNode HtmlAgilityPack.HtmlNode HtmlAgilityPack.HtmlNode HtmlAgilityPack.HtmlNode HtmlAgilityPack.HtmlNode HtmlAgilityPack.HtmlNode HtmlAgilityPack.HtmlNode HtmlAgilityPack.HtmlNode HtmlAgilityPack.HtmlNode HtmlAgilityPack.HtmlNode

如何将解析后的链接写入文本文件?

1 个答案:

答案 0 :(得分:5)

DocumentElement更改为DocumentNode