对象引用没有设置为一个htmlcollection的实例
本文关键字:一个 htmlcollection 实例 设置 对象引用 | 更新日期: 2023-09-27 18:01:16
我需要你帮我签收这个任务。我想使用htmlaglitypack来计数标签。我尝试通过使用htmlcollection节点来计数标签。但是得到
"对象引用未设置为对象的实例"
在每个条件的行中。有谁能纠正我为什么会这样的问题吗?
我的代码张贴如下:
public void XmlPPC(string rights)
{
int count = 0;
try
{
MessageBox.Show(rights);
using (FileStream fs = File.Open(rights,
FileMode.Open,
FileAccess.Read,
FileShare.ReadWrite))
using (BufferedStream bs = new BufferedStream(fs))
using (StreamReader sr = new StreamReader(bs))
{
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.Load(sr);
HtmlNodeCollection right = doc.DocumentNode.SelectNodes("//copyrightLine");
foreach (HtmlNode logan in right)
{
count = count + 1;
MessageBox.Show("cnt" + count.ToString());
}
// snip...
}
}
catch (Exception f)
{
log = log + "'r'n" + f.ToString();
}
}
你得到错误:
对象引用未设置为对象的实例。
因为这一行:
HtmlNodeCollection right = doc.DocumentNode.SelectNodes("//copyrightLine");
返回null
。这只能发生,因为没有名为copyrightLine
的元素。请考虑以下//
操作规范:
从当前节点中选择与所选内容匹配的节点,无论它们在哪里。
现在,修复是几件事之一:
- 获取一个名为
copyrightLine
的元素。 - 修复可能出现的拼写错误
- 如果不属于这两种,请以不同的方式搜索您需要的内容。