0

我尝试使用 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);
4

1 回答 1

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);
    }
于 2018-01-16T19:02:49.633 回答