Как решить проблему с ошибкой: «Ссылка на объект не указывает на экземпляр объекта»?

Делаю парсинг HTML, с помощью HtmlAgilityPack.

Написал следующий программный код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.Xml;
using System.IO;
using HtmlAgilityPack;

namespace ConsoleParsingHTMLwithHtmlAgilityPack_CSarp
{
    class Program
    {
        static void Main(string[] args)
        {
            string pathToHtml = "C:/Users/alex/Desktop/view-source_gtmarket.ru_news_2015_04_24_7130.html";
            System.IO.StreamReader HtmlDoc = new System.IO.StreamReader(pathToHtml);
            string content = HtmlDoc.ReadToEnd();
            HtmlDoc.Close();

            HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
            doc.LoadHtml(content);

            var x = doc.DocumentNode.SelectNodes("//table[@class='table-data']").Elements("tr").ToList();


            foreach (HtmlNode node in x)
            {
                var s = node.Elements("td").ToList();
                foreach (HtmlNode item in s)
                {
                    Console.Write("  " + item.InnerText);
                }
                Console.WriteLine();
            }
            Console.ReadLine();

        }
    }
}


При попытке выполнить программный код, появляется ошибка: "Ссылка на объект не указывает на экземпляр объекта", в строке:
var x = doc.DocumentNode.SelectNodes("//table[@class='table-data']").Elements("tr").ToList();


В чем причина этой ошибки, или как её решить?

P.S. HTML-код для парсинга был взят от сюда: gtmarket.ru/news/2015/04/24/7130
  • Вопрос задан
  • 1875 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Для начала разбить эту строку и посмотреть, где проявится ошибка.
var docNode = doc.DocumentNode;
var tables = docNode.SelectNodes("//table[@class='table-data']");
var trs = tables.Elements("tr");
var trList = trs.ToList();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы