使用HTML敏捷包,我一直在尝试统计每个div标签中的段落标签的数量,并得到一个段落ID和类(如果它们存在),其中一个段落最多,但我的语法有问题。
我的代码如下:

// HtmlDocument is stored in doc
HtmlAgilityPack.HtmlNodeCollection div = doc.DocumentNode.SelectNodes("//div");

    foreach (HtmlAgilityPack.HtmlNode divNode in div)
    {
        var x = divNode.DescendantNodes("p").Count; // doesn't actually work
        // x should also be stored in a list
    }

如果有人能给我指一个正确的方向或者给我举一些例子,那真的会有帮助。谢谢!

最佳答案

这样怎么样:

//get the maximum number of paragraph
int maxNumberOfParagraph =
            doc.DocumentNode
               .SelectNodes("//div[.//p]")
               .Max(o => o.SelectNodes(".//p").Count);

//get divs having number of containing paragraph equals maxNumberOfParagraph
var divs = doc.DocumentNode
              .SelectNodes("//div[.//p]")
              .Where(o => o.SelectNodes(".//p").Count == maxNumberOfParagraph);

关于c# - C#从网站的html源代码计算div中的段落,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23760436/

10-10 05:07