【问题标题】:C# count paragraphs in div from a website's html source codeC# 从网站的 html 源代码计算 div 中的段落
【发布时间】:2014-05-20 21:24:39
【问题描述】:

使用 Html Agility Pack 我一直在尝试计算每个 div 标签中的段落标签数量,并获取具有最多段落但我的语法有问题。

我的代码如下所示:

// 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
    }

如果有人可以为我指出正确的方向或提供示例,那真的很有帮助。谢谢!

【问题讨论】:

    标签: c# html html-agility-pack


    【解决方案1】:

    这样怎么样:

    //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);
    

    【讨论】:

    • 假设我们有 5 个 div,每个 div 包含 3 个段落。总共将是 15 段。然后我们搜索一个有 15 个段落的 div,结果没有,对吧?在我看来它似乎不会起作用,但无论如何谢谢。
    • 没有。在这种情况下,maxNumberOfparagraph 将是 3,divs 将包含所有这 5 个 div。试试看。
    • 不完全是我想要的,但绝对帮助我实现了我的目标。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 2012-09-12
    相关资源
    最近更新 更多