【发布时间】:2014-05-30 20:29:58
【问题描述】:
我有一个由 HtmlAgilityPack 编码的程序,但它不能正常工作。 Url 和节点是正确的。但它有一个错误,它指的是foreach。
错误是
对象引用未设置为对象的实例。
它以前工作过。我删除了 HtmlAgilityPack dll 并再次添加它。但不起作用。 我需要访问标签的href。
我的代码是:
string source = wc.DownloadString("http://example.com");
HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument();
document.LoadHtml(source);
foreach (HtmlNode div in
document.DocumentNode.SelectNodes("//div[@class='test']/a"))
{
//do something
}
【问题讨论】:
-
SelectNodes如果找不到节点,则返回 null。您必须将SelectNodes函数的结果分配给某个变量并检查它是否为空。您可以查看HtmlAgilityPack DocumentNode.SelectNodes returns null, shouldn't 问题。如果它以前工作过 - 那么可能 HTML 结构已更改,因此您需要编写新的 XPath 表达式。 -
它不起作用。并且 HTML 结构没有改变
-
它会抛出同样的异常吗?添加完整的异常详细信息。
-
添加支票
if (document.DocumentNode != null)。
标签: winforms c#-4.0 html-agility-pack