C#从网站的html源代码中计算div中的段落

标签 c# html html-agility-pack

使用 Html Agility Pack 我一直在尝试计算每个 div 标签中的段落标签数量,并获取段落最多的那个的 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#从网站的html源代码中计算div中的段落,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23760436/

相关文章:

C#和HtmlAgilityPack编码问题

C# 随机控制台数学方程游戏 : Converting string back to equation?

c# - 检测 WCF 中的套接字断开连接

html - 如何使用 Bootstrap 打印没有水平滚动条的换行文本?

c# - 如何使用 C# 从 XML 中删除重复属性

c# - 使用 HTML Agility Pack 和 Linq 解析 html

c# - 数据类型日期时间值初始化

c# - 在 ViewComponent : This async method lacks 'await' operators and will run synchronously

php - 动态更改高度时,页脚不会停留在机器人上

javascript - 将行号添加到呈现的 rmarkdown html 文档的文本内容