AngleSharp - 查找最内层嵌套表

时间:2018-01-15 05:59:26

标签: linq classname anglesharp nodename

我尝试使用AngleSharp获取所有最内层表的列表。此表不包含任何表。

使用HtmlAgilityPack我已经意识到了这一点:

    var wrapper = html.DocumentNode.SelectSingleNode(".//td[@class='wrapper']");
    var innerMostTables = wrapper.SelectNodes(".//table [not(descendant::table)]");

使用AngleSharp我试过这个,但它不起作用:

    var parser = new HtmlParser();
    var document = parser.Parse(html);

    var wrapper = document.All.Where(d => d.ClassName == "wrapper");
    var innerMostTables = wrapper.Where(w => w.Descendents()
                                     .Select(c => c.NodeName == "table").Count() == 0);

1 个答案:

答案 0 :(得分:0)

我可以解决问题:

    foreach (IElement ch in wrapper.Descendents()
             .Where(d => d.NodeName == "TABLE" && d.Descendents()
                 .Where(d2 => d2.NodeName == "TABLE").Count() == 0))
    {
        Console.WriteLine(ch.OuterHtml);
    }