C# 使用HTML Agility pack向datagridview添加HTML表

C# 使用HTML Agility pack向datagridview添加HTML表,c#,html,parsing,datagridview,html-agility-pack,C#,Html,Parsing,Datagridview,Html Agility Pack,我正在编写一个简单的应用程序,使用HTML敏捷包将HTML表解析为datagridview。但当我运行代码时,它会抛出一个错误“此行已属于此表” 我需要像下面这样解析简单的HTML表 <html> <head> </head> <body> <table> <tr> <td>Alfreds Futterkiste</td> <td>Maria Anders</td

我正在编写一个简单的应用程序,使用HTML敏捷包将HTML表解析为datagridview。但当我运行代码时,它会抛出一个错误“此行已属于此表”

我需要像下面这样解析简单的HTML表

<html>
<head>
</head>
<body>
<table>
  <tr>
    <td>Alfreds Futterkiste</td>
    <td>Maria Anders</td>
    <td>Germany</td>
  </tr>
   <tr>
    <td>Alfreds Futterkiste</td>
    <td>Maria Anders</td>
    <td>Germany</td>
  </tr>
</table>
</body>
</html>
我需要一个简单的datagridview输出,如下所示


如何使用HTML Agility pack实现这一点?

移动以下行

dt.Rows.Add(dr);
表单元格上的foreach循环外部。您尝试多次将同一行添加到数据表中

int i = 0;
foreach (var cell in row.SelectNodes("//td"))
{
    dr[i++] = cell.InnerText;
}
dt.Rows.Add(dr);

谢谢你解决了我提到的问题。但现在它只打印所有字段的最后一个值(德国)。你能告诉我为什么会发生这种情况吗?我对这个很陌生。谢天谢地,还是没办法解决it@gripenfighter用您当前的代码更新问题,并详细说明您仍然存在的问题。我编辑了代码。我需要得到如图所示的html表格
int i = 0;
foreach (var cell in row.SelectNodes("//td"))
{
    dr[i++] = cell.InnerText;
}
dt.Rows.Add(dr);