我只需要解析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***
}
}
}
然后我在
得到NullReferenceExceptionforeach (HtmlNode table in doc.DocumentNode.SelectNodes("//table"))
所以表中没有任何内容,但为什么呢?
答案 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字符串作为参数。对于文件,应使用加载。