HTMLAgilityPack,HTML重复ID

时间:2010-04-22 18:20:31

标签: c# html html-agility-pack

嗨:这与此here类似。但需要在服务器级别而不是在客户端级别完成。目前我使用HTMLAgilityPack,无论如何我可以检测到重复的ID?提前谢谢。

1 个答案:

答案 0 :(得分:1)

这是一种快速的方法:

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlString);

var count = new Dictionary<string, int>(); 

foreach (var node in doc.DocumentNode.Descendants())
{
    string id = node.GetAttributeValue("id", null);
    if (id != null)
    {
        if (count.ContainsKey(id)) count[id] += 1;
        else count.Add(id, 1); 
    }
}

var duplicates = count.Where( id => id.Value > 1 );

这基本上解析整个文档,记录哈希中的计数。

相关问题