-1
我使用HTML Agility pack的幫助編寫了一個簡單的應用程序,用於將HTML表解析爲datagridview。但是當我運行的代碼,它扔我一個錯誤「該行已經屬於該表」使用HTML Agility包將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>
這是我的代碼
private void button1_Click(object sender, EventArgs e)
{
var htmlCode = richTextBox1.Text.Trim();
var doc = new HtmlDocument();
doc.LoadHtml(htmlCode);
dt = new DataTable();
dt.Columns.Add("Company", typeof (string));
dt.Columns.Add("Contact", typeof (string));
dt.Columns.Add("Country", typeof (string));
var count = 0;
foreach (var table in doc.DocumentNode.SelectNodes("//table"))
{
foreach (var row in table.SelectNodes("//tr"))
{
var dr = dt.NewRow();
var i = 0;
foreach (var cell in row.SelectNodes("//td"))
{
dr["Company"] = cell.InnerText.Replace(" ", "");
dr["Contact"] = cell.InnerText.Replace(" ", "");
dr["Country"] = cell.InnerText.Replace(" ", "");
}
dt.Rows.Add(dr);
}
grid.DataSource = dt;
}
}
我需要datagridview的一個簡單的輸出這樣
如何使用HTML Agility Pack做到這一點?
謝謝你解決方案修復我提到的問題。但現在它只打印所有領域的最後值(德國)。 –
這就是你的代碼所做的。只要看看它... – NineBerry
你能告訴我爲什麼會發生這種情況?我對此很陌生。謝謝 –