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つです:

  1. という名前の要素を取得しcopyrightLineます。
  2. スペルが間違っている可能性があるので、スペルを修正します。
  3. この2つに当てはまらない場合は、別の方法で必要なものを検索してください。
于 2013-02-26T13:10:14.867 に答える