HTML — это язык разметки, широко используемый на веб-сайтах, в веб-приложениях и т. д. Содержимое в HTML различается с помощью различных тегов. Вы можете легко преобразовать HTML в обычный текст с помощью языка C#, игнорируя при этом открывающие и закрывающие теги. Точно так же могут быть некоторые спецификации каскадных таблиц стилей, JavaScript или любой другой раздел HTML в соответствии с вашими требованиями. Таким образом, это похоже на извлечение текста из HTML-документа. Давайте пройдемся по следующему разделу для получения подробной информации:
- Конвертер HTML в обычный текст на C#
- Преобразование HTML в текстовый файл с помощью INodeIterator в С#
- Извлечение текста из HTML с помощью различных подходов с использованием C#
- Преобразование URL-адреса веб-страницы HTML в текст с помощью С#
Конвертер HTML в обычный текст на C#
Вы можете конвертировать HTML в обычный текст с помощью Aspose.HTML for .NET API. Его можно легко настроить в среде на основе .NET Framework с помощью следующей команды установки NuGet:
PM> Install-Package Aspose.Html
Преобразование HTML в текстовый файл с помощью INodeIterator в С#
Aspose.HTML для .NET API основан на DOM (объектной модели документа), поэтому вы можете перебирать различные узлы API с помощью интерфейса INodeIterator. Точно так же он дает вам возможность определить NodeFilter и переопределить методы фильтрации содержимого. Вы можете игнорировать стиль, сценарий или любой другой элемент в файле HTML, чтобы выбрать из него только текстовую строку. Ниже приведены шаги для преобразования HTML в обычный файл TXT с помощью C#:
- Чтение входного HTML-файла
- Инициализировать экземпляр итератора узла
- Создать экземпляр INodeIterator
- Проверить наличие фильтра стилей
- Чтение значения узла в строке
- Запись текстового содержимого HTML в виде файла TXT
В приведенном ниже коде показано, как преобразовать HTML в обычный текстовый файл с помощью C#:
String content = File.ReadAllText(dataDir + "Test2.html");
// Создать экземпляр HTML-документа
using (var document = new HTMLDocument(content, ""))
{
// Первый способ сбора текстовых элементов из документа
// Инициализировать экземпляр итератора узла
Aspose.Html.Dom.Traversal.INodeIterator iterator = document.CreateNodeIterator(document, Aspose.Html.Dom.Traversal.Filters.NodeFilter.SHOW_TEXT, new StyleFilter());
StringBuilder sb = new StringBuilder();
Aspose.Html.Dom.Node node;
while ((node = iterator.NextNode()) != null)
sb.Append(node.NodeValue);
Console.WriteLine(sb.ToString());
File.WriteAllText(@"NodeIterator.txt", sb.ToString());
}
///<summary>
/// Представляет пользовательский фильтр, созданный для игнорирования содержимого элементов «стиль» и «скрипт».
///</summary>
class StyleFilter : Aspose.Html.Dom.Traversal.Filters.NodeFilter
{
public override short AcceptNode(Aspose.Html.Dom.Node n)
{
//Если вы хотите избежать какого-либо элемента, напишите его название заглавными буквами.
return (n.ParentElement.TagName == "STYLE" || n.ParentElement.TagName == "SCRIPT" ? FILTER_REJECT : FILTER_ACCEPT);
}
}
Извлечение текста из HTML с помощью различных подходов с использованием C#
Мы научились преобразовывать HTML в текст с помощью INodeIterator. Кроме того, существует несколько других подходов для достижения этих требований. Вы можете создать собственный метод для извлечения текста или работать со свойством TextContent, как описано в следующих шагах:
- Загрузить входной HTML-документ
- Определение пользовательского метода
- Проверьте каждый NodeType, чтобы узнать, является ли он узлом элемента или текстовым узлом.
- Получить текстовые элементы с помощью свойства TextContent
- Сохранить выходной TXT-файл
Фрагмент кода ниже объясняет эти два разных подхода к преобразованию HTML в обычный текст на C#:
String text = "";
String content = File.ReadAllText(dataDir + "Test2.html");
// Создать экземпляр HTML-документа
var document = new HTMLDocument(content, "");
// Второй способ сбора текстовых элементов из документа с помощью пользовательского метода
text = GetContent(document.Body);
File.WriteAllText("Test.txt", text);
// Третий способ сбора текстовых элементов из документа с использованием свойства TextContent
text = document.Body.TextContent;
File.WriteAllText("Test.txt", text);
static string GetContent(Aspose.Html.Dom.Node node)
{
StringBuilder sb = new StringBuilder();
foreach (var n in node.ChildNodes)
{
if (n.NodeType == Aspose.Html.Dom.Node.ELEMENT_NODE)
sb.Append(GetContent(n));
else if (n.NodeType == Aspose.Html.Dom.Node.TEXT_NODE)
sb.Append(n.NodeValue);
}
return sb.ToString();
}
Преобразование URL-адреса веб-страницы HTML в текст с помощью С#
Мы уже рассмотрели преобразование HTML в текст оффлайновой веб-страницы, где файл HTML должен существовать, загрузив его на диск. Давайте сделаем еще один шаг вперед, когда вам даже не нужно сохранять файл HTML на диске. Вы можете напрямую преобразовать веб-страницу, указав ее URL-адрес, в файл TXT с помощью C#. Например, давайте преобразуем страницу продукта Aspose.HTML для .NET API в файл TXT, выполнив следующие действия:
- Инициализировать объект HTMLDocument и указать URL
- Чтение текстового содержимого формата HTML
- Запишите файл TXT с извлеченным текстом с веб-страницы.
В приведенном ниже коде показано, как преобразовать URL-адрес веб-страницы HTML в текст с помощью C#:
// Инициализировать объект HTMLDocument с URL-адресом
HTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net");
// Чтение текстового содержимого формата HTML
String text = document.Body.TextContent;
// Запишите файл TXT с извлеченным текстом
File.WriteAllText("Webpage.txt", text);
Вывод
В этой статье мы обсудили, как конвертировать файлы HTML в обычный текст, извлекать текст из HTML, а также URL-адрес веб-страницы в Интернете в формат файла TXT с помощью C#. Вы можете использовать разные подходы и не стесняйтесь обращаться к нам через Бесплатный форум поддержки, если вам нужна дополнительная помощь.
Смотрите также
Совет: вас может заинтересовать бесплатный конвертер текста в GIF, который позволяет создавать анимацию из текста.