Html Agility Pack,表节点上的迭代不起作用

时间:2014-10-03 09:04:04

标签: c# html html-agility-pack

我有以下代码,它应该只遍历一个表格中的所有<td>(页面上的第四个)。

foreach (HtmlNode table in doc.DocumentNode.SelectNodes("//table").Skip(4).Take(1))
            {
                Console.WriteLine(table.SelectNodes("//table").Count()); // = 5?
                Console.WriteLine(table.SelectNodes("//table").Skip(4).Take(1).Count()); // = 1!

                foreach (var td in table.SelectNodes("//td"))
                {
                   Console.WriteLine(td.InnerText);
                }
            }

出于某种原因,table.SelectNodes("//td")正在遍历所有五个表<td>&#39}。

我有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您需要在XPath的开头添加单点(.)以使其被识别为相对路径(在这种情况下,相对于当前table):

foreach (var td in table.SelectNodes(".//td"))
{
   Console.WriteLine(td.InnerText);
}