我需要帮忙签署任务。我想用htmlaglitypack来计算标签。我试图通过使用htmlcollection节点来计算标记。但是得到
“对象引用未设置为对象的实例”
在线条foreach条件。他们中的任何人都可以纠正我为什么会这样做的问题吗?
我的代码发布在下面:
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();
}
}
答案 0 :(得分:0)
您收到错误:
对象引用未设置为对象的实例。
因为这一行:
HtmlNodeCollection right = doc.DocumentNode.SelectNodes("//copyrightLine");
正在返回null
。这种情况只会发生,因为没有名为copyrightLine
的元素。请考虑//
操作的following specification:
从当前节点中选择与选择匹配的文档中的节点,无论它们在何处。
现在,修复是以下几点之一:
copyrightLine
的元素。