Перетворити витяг HTML-тексту

HTML – це мова розмітки, яка широко використовується на веб-сайтах, у веб-додатках тощо. Вміст у HTML розрізняється за допомогою різних тегів. Ви можете легко перетворити HTML на звичайний текст за допомогою мови C#, ігноруючи відкриваючі та закриваючі теги. Так само можуть бути специфікації каскадних таблиць стилів, JavaScript або будь-який інший розділ HTML відповідно до ваших вимог. Таким чином, це схоже на вилучення тексту з документа HTML. Давайте пройдемося по наступному розділу для отримання детальної інформації:

Конвертер HTML у звичайний текст у C#

Ви можете конвертувати HTML у звичайний текст за допомогою API Aspose.HTML for .NET. Його можна легко налаштувати в середовищі на основі .NET Framework за допомогою наступної інсталяційної команди NuGet:

PM> Install-Package Aspose.Html

Перетворення HTML на текстовий файл за допомогою INodeIterator у C#

API Aspose.HTML for .NET базується на DOM (модель об’єктів документа), тому ви можете перебирати різні вузли API за допомогою інтерфейсу INodeIterator. Крім того, він дає вам можливість визначити NodeFilter і перевизначити методи для фільтрації вмісту. Ви можете ігнорувати стиль, сценарій або будь-який інший елемент у файлі HTML, щоб вибрати з нього лише текстовий рядок. Нижче наведено кроки для перетворення HTML у звичайний файл TXT за допомогою C#:

  1. Прочитати вхідний файл HTML
  2. Ініціалізувати екземпляр ітератора вузла
  3. Створіть екземпляр INodeIterator.
  4. Перевірте фільтр стилю
  5. Читання значення вузла в рядку
  6. Запишіть текстовий вміст 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>
/// Представляє фільтр користувача, створений для ігнорування вмісту елементів 'style' і 'script'.
///</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, як описано нижче:

  1. Завантажити вхідний документ HTML
  2. Визначте визначений користувачем метод
  3. Перевірте кожен NodeType, щоб побачити, чи це вузол елемента чи текстовий вузол
  4. Отримати текстові елементи за допомогою властивості TextContent.
  5. Збережіть вихідний файл 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();
}

Перетворення HTML веб-сторінки URL-адреси на текст за допомогою C#

Ми вже розглядали перетворення HTML веб-сторінки в текстовий режим у режимі офлайн, де файл HTML повинен існувати, завантаживши його на диск. Давайте зробимо ще один крок далі, коли вам навіть не потрібно зберігати файл HTML на диску. Ви можете безпосередньо перетворити веб-сторінку, вказавши її URL-адресу, у файл TXT за допомогою C#. Наприклад, давайте перетворимо сторінку продукту Aspose.HTML for .NET API у файл TXT за допомогою наведених нижче кроків:

  1. Ініціалізуйте об’єкт HTMLDocument і вкажіть URL-адресу
  2. Прочитайте текстовий вміст формату HTML
  3. Напишіть файл TXT із витягнутим текстом із веб-сторінки

Наведений нижче код показує, як перетворити URL-код веб-сторінки в текст за допомогою 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#. Ви можете використовувати різні підходи та сміливо зв’язуватися з нами через безкоштовний форум підтримки, якщо вам потрібна додаткова допомога.

Дивись також

Порада. Вас може зацікавити безкоштовний Text to GIF Converter, який дозволяє створювати анімацію з текстів.