/// <summary> /// Counts the tags. /// </summary> /// <param name="nodes">The nodes.</param> public void CountTags(IEnumerable <HtmlNode> nodes) { List <HtmlNode> newNodes = new List <HtmlNode>(); newNodes.AddRange(nodes); while (newNodes.Count != 0) { List <HtmlNode> actNodes = newNodes; newNodes = new List <HtmlNode>(); foreach (HtmlNode n in actNodes) { if (n.NodeType == HtmlNodeType.Element) { String nl = n.Name.ToLower(); if (counterDictionary.ContainsKey(nl)) { counterDictionary[nl].ScoreUp(nl); if (!DistinctTags.Contains(nl)) { DistinctTags.Add(nl); } } else { UnknownTags.Score++; if (!DistinctUnknownTags.Contains(nl)) { DistinctUnknownTags.Add(nl); } } newNodes.AddRange(n.ChildNodes); } } } }