HTMLAgilityPack, повторяющиеся идентификаторы HTML

Привет: Это похоже на это здесь. Но это нужно делать на уровне сервера, а не на уровне клиента. В настоящее время я использую HTMLAgilityPack, могу ли я обнаружить повторяющиеся идентификаторы? Заранее спасибо.


person Sha Le    schedule 22.04.2010    source источник


Ответы (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 );

Это в основном анализирует весь документ, отслеживая количество в хэше.

person Rohit Agarwal    schedule 22.04.2010