1

こんにちは:これはここに似ています。ただし、クライアントレベルではなく、サーバーレベルで実行する必要があります。現在、HTMLAgilityPackを使用していますが、重複するIDを検出できますか?前もって感謝します。

4

1 に答える 1

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 );

これは基本的に、ハッシュ内のカウントを追跡しながらドキュメント全体を解析します。

于 2010-04-22T21:34:44.340 に答える