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

时间:2013-02-26 12:55:39

标签: c# wpf

我需要帮忙签署任务。我想用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();
    }
}

1 个答案:

答案 0 :(得分:0)

您收到错误:

  

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

因为这一行:

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

正在返回null。这种情况只会发生,因为没有名为copyrightLine元素。请考虑//操作的following specification

  

从当前节点中选择与选择匹配的文档中的节点,无论它们在何处。

现在,修复是以下几点之一:

  1. 在其中获取名为copyrightLine的元素。
  2. 修复拼写错误,因为拼写错误。
  3. 如果不属于这两种方式,请以不同的方式搜索您需要的内容。