1

我需要好心人签收任务。我想使用 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();
    }
}
4

1 回答 1

0

您收到错误消息:

你调用的对象是空的。

因为这一行:

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

正在回归null。这只会发生,因为没有名为的元素copyrightLine。请考虑以下操作规范//

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

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

  1. 在其中获取一个名为copyrightLine.
  2. 修复拼写错误,因为它可能拼写错误。
  3. 如果不属于这两种方式,请以不同的方式搜索您需要的内容。
于 2013-02-26T13:10:14.867 回答