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