.NET 4.x HtmlAgilityPack - получение текста внутри тега - C#
Формулировка задачи:
Доброго времени суток.
При разборе html - страницы возникла необходимость получать для каждого тега его внутренний текст БЕЗ текста потомков!
Метод - возвращает свой текст+ текст всех потомков, поэтому приходится делать вот так:
То есть вырезать из текста родителя содержимое потомков. Все работает, НО катастрофически медленно из за перебора всех потомков.
Данная функция вызывается очень много раз, поэтому необходимо ее сделать БЫСТРОЙ.
Буду рад предложениям по оптимизации. Заранее спасибо.
node.InnerText
string bigInnerText = node.InnerText; foreach (var child in childNodeCollection) // для каждого потомка { var text = child.InnerText; if ((text.Length > 10) && (dateExist(text))) { bigInnerText = bigInnerText.Replace(text, ""); // выкусываем из текста родителя текст потомка } }
Решение задачи: «.NET 4.x HtmlAgilityPack - получение текста внутри тега»
textual
Листинг программы
public virtual string InnerTextNoRekurs { get { if (this.Name == "#text") return ((HtmlTextNode)this).Text; foreach (HtmlNode node in ChildNodes) { if(node.Name == "#text") return ((HtmlTextNode)node).Text; } return ""; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д