DocumentElement.SelectNodes возвращает значение null (Html ​​Agility Pack)

c# html-agility-pack

Вопрос

Мне просто нужно разобрать таблицу в html, которая выглядит так:

<html>
<head>
  <title>
  </title>
</head>
<body>
  <table>
  ***contents***
  </table>
</body>
</html>

Мой код выглядит так:

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(@path);
foreach (HtmlNode table in doc.DocumentNode.SelectNodes("//table"))
{
  foreach (HtmlNode row in table.SelectNodes("tr"))
  {
    foreach (HtmlNode cell in row.SelectNodes("th|td"))
    {
      ***copy content***
    }
  }
}

Но затем я получаю исключение NullReferenceException

foreach (HtmlNode table in doc.DocumentNode.SelectNodes("//table"))

Так что в таблице ничего нет, но почему?

Принятый ответ

Я исправил это. Проблема заключалась в методе LoadHtml , который принимает строку html в качестве параметра. Для файла следует использовать Load .


Популярные ответы

Поскольку у вас нет строк таблицы tr в вашем HTML, пакет гибкости не находит каких-либо

 try this 
            // Get all tables in the document
            HtmlNodeCollection tables = doc.DocumentNode.SelectNodes("//table");

            // Iterate all rows in the first table
            HtmlNodeCollection rows = tables[0].SelectNodes(".//tr");
            for (int i = 0; i < rows.Count; ++i)
            {


            }


Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow