C #: HtmlAgilityPack извлекает внутренний текст
Я использую HtmlAgilityPack. Есть ли один код строки, который я могу получить во внутреннем тексте html, например, удалить все tags html и скрипты?
- Анализ HTML для получения контента с использованием C #
- Использование регулярных выражений для анализа HTML: почему бы и нет?
- Пакетный скрипт получает html-сайт и анализирует контент (без wget, curl или другого внешнего приложения)
- HTML-атрибуты в ленте-ярлыках NOT IN whitelist
- Простой пример XML-анализа libxml2 с использованием Objective-c, Xcode и HTMLparser.h
- Как получить img / src или a / hrefs с помощью Html Agility Pack?
Как это:
document.DocumentNode.InnerText
Обратите внимание, что это вернет текстовое содержимое тегов .
Чтобы исправить это, вы можете удалить все tags , например:
foreach(var script in doc.DocumentNode.Descendants("script").ToArray()) script.Remove(); foreach(var style in doc.DocumentNode.Descendants("style").ToArray()) style.Remove();
Я написал простой метод. Это может вам помочь. Этот метод может извлекать все узлы конкретного тега. Затем вы можете использовать HtmlNodeCollection[i].InnerText
чтобы получить его текст.
HtmlDocument hDoc; HtmlNodeCollection nodeCollection; public void InitInstance(string htmlCode) { hDoc.LoadHtml(htmlCode); nodeCollection = new HtmlNodeCollection(); } private void GetAllNodesInnerTextByTagName(HtmlNode node, string tagName) { if (null == node.ChildNodes) { return ; } else { HtmlNodeCollection nCollection = node.SelectNodes( tagName ); if( null != nCollection ) { for( int i=0; i