使用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/