对象引用没有设置为一个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();
    }
}

对象引用没有设置为一个htmlcollection的实例

你得到错误:

对象引用未设置为对象的实例。

因为这一行:

HtmlNodeCollection right = doc.DocumentNode.SelectNodes("//copyrightLine");

返回null。这只能发生,因为没有名为copyrightLine元素。请考虑以下//操作规范:

从当前节点中选择与所选内容匹配的节点,无论它们在哪里。

现在,修复是几件事之一:

  1. 获取一个名为copyrightLine的元素。
  2. 修复可能出现的拼写错误
  3. 如果不属于这两种,请以不同的方式搜索您需要的内容。
相关文章: