DocumentElement.SelectNodes返回null(Html Agility Pack)

时间:2014-03-20 02:42:19

标签: 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"))

所以表中没有任何内容,但为什么呢?

2 个答案:

答案 0 :(得分:1)

由于您的HTML中没有任何tr表行,敏捷包没有找到任何

 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)
            {


            }

答案 1 :(得分:-2)

我已经修好了。问题是 LoadHtml 方法,该方法将html字符串作为参数。对于文件,应使用加载