HTML Agility Pack C# - 选择行的单元格(不是整个表格)

时间:2013-08-23 07:05:59

标签: c# html-agility-pack

我在控制台应用程序中使用HTML Agility Pack来解析某个网页。

我设法得到我正在寻找的表,然后选择所有行。到目前为止,一切都很好。

我的代码如下:

var rows = table.SelectNodes("//tr");
foreach(var row in rows)
{
    var cells = row.SelectNodes("//td");
    Console.WriteLine(cells.Count);

    foreach(var cell in cells) {
        // Do something
   }
}

在每行中我应该有4个单元格而不是697(整个表格中的单元格数量)。我尝试使用/td .//td,但我只会收到错误。我有什么问题吗?

1 个答案:

答案 0 :(得分:1)

您的第二个选择//td以递归方式选择(两个/)并从顶部开始(表达式以/开头)。你想要的更像是这样:

var cells = row.SelectNodes(".//td");

这意味着从当前上下文/节点(.)递归选择。

有关XPATH表达式的更多信息,请参阅此处XPATH Syntax