我正在尝试使用 HtmlAgilityPack 解析 TR,并对第一个、第二个、第三个等 TD 做一些不同的事情。
我快到了,但我的代码(如下)导致无限循环。它只是一遍又一遍地重复第一行:
foreach (HtmlNode row in htmlDoc.DocumentNode.SelectNodes("//table//tr"))
{
var node = row.SelectSingleNode("//td[1]");
if (node != null)
{
Console.WriteLine("Node: {0}", node.InnerText);
}
}
原始 HTML 正确返回。该表也很标准:
<table>
<tr>
<th>Header 1</hr>
<th>Header 2</hr>
<th>Header 3</hr>
<th>Header 4</hr>
<th>Header 5</hr>
</tr>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
<td>Cell 3</td>
<td>Cell 4</td>
<td>Cell 5</td>
...
</tr>
</table>
以下代码有效,但它没有按行分组,因此更难操作:
foreach (HtmlNode node in htmlDoc.DocumentNode.SelectNodes("//table//tr//td"))
{
Console.WriteLine("Node: {0}", node.InnerText);
}