public void HighlightStaticsticIncrease(StatisticsDataSet.HighlightStatisticsRow runStatistics, HighlightWord word) { StatisticsDataSet.WordStatisticsRow wordRow = statisticsDataSet.WordStatistics.FirstOrDefault(row => row.Word == word.Content && row.RunId == runStatistics.RunId); if (wordRow == null) { wordRow = statisticsDataSet.WordStatistics.AddWordStatisticsRow (word.Content , word.BackgroundColor.ToArgb() , runStatistics , 0); } runStatistics.TotalMatchedCount++; wordRow.MatchedCount++; }
private string ProcessingWords(string textContent, WordMatcher matcher, StatisticsDataSet.HighlightStatisticsRow statisticsRow = null) { StringBuilder word = new StringBuilder(); HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(textContent); HtmlAgilityPack.HtmlDocument newDoc = new HtmlAgilityPack.HtmlDocument(); foreach (HtmlNode htmlNode in doc.DocumentNode.ChildNodes) { if (htmlNode.Name.Equals("#text", StringComparison.OrdinalIgnoreCase)) { foreach (char c in htmlNode.InnerText) { if (char.IsLetterOrDigit(c)) { word.Append(c); } else { if (word.Length > 0) { AppendNewWord(ref newDoc, word.ToString(), matcher, statisticsRow); word.Clear(); } AppendSimpleWord(ref newDoc, c.ToString()); } } } else { if (word.Length > 0) { AppendNewWord(ref newDoc, word.ToString(), matcher, statisticsRow); word.Clear(); } HtmlNode otherNode = htmlNode.CloneNode(true); newDoc.DocumentNode.ChildNodes.Add(otherNode); } } if (word.Length > 0) { AppendNewWord(ref newDoc, word.ToString(), matcher); } return GetDocContent(newDoc); }
private void AppendNewWord(ref HtmlAgilityPack.HtmlDocument newDoc, string word, WordMatcher matcher, StatisticsDataSet.HighlightStatisticsRow statisticsRow = null) { HighlightWord matchedWord = null; if (matcher.Match(word, out matchedWord)) { HtmlNode span = newDoc.CreateElement("span"); span.SetAttributeValue("style", matchedWord.Style); span.InnerHtml = word; newDoc.DocumentNode.ChildNodes.Append(span); //if (statisticsRow != null) //{ // frmStatistics.HighlightStaticsticIncrease(statisticsRow, matchedWord); //} } else { AppendSimpleWord(ref newDoc, word); } }