轉換 提取 HTML 文本

HTML 是一種標記語言,廣泛用於網站、Web 應用程序等。HTML 中的內容使用不同的標籤來區分。您可以使用 C# 語言輕鬆地將 HTML 轉換為純文本,同時忽略開始和結束標記。同樣,根據您的要求,可能有一些級聯樣式表規範、JavaScript 或 HTML 的任何其他部分。因此,它就像從 HTML 文檔中提取文本。讓我們瀏覽以下部分以獲取詳細信息:

C# 中的 HTML 到純文本轉換器

您可以使用 Aspose.HTML for .NET API 將 HTML 轉換為純文本。它可以使用以下 NuGet 安裝命令在基於 .NET Framework 的環境中輕鬆配置:

PM> Install-Package Aspose.Html

在 C# 中使用 INodeIterator 將 HTML 轉換為文本文件

Aspose.HTML for .NET API 基於 DOM(文檔對像模型),因此您可以使用 INodeIterator 接口遍歷 API 的不同節點。同樣,它為您提供了定義 NodeFilter 和覆蓋內容過濾方法的控件。您可以忽略 HTML 文件中的樣式、腳本或任何其他元素,只從中挑選文本字符串。以下是使用 C# 將 HTML 轉換為純 TXT 文件的步驟:

  1. 讀取輸入的 HTML 文件
  2. 初始化節點迭代器的實例
  3. 創建 INodeIterator 實例
  4. 檢查樣式過濾器
  5. 讀取字符串中的節點值
  6. 將 HTML 的文本內容寫成 TXT 文件

下面的代碼顯示瞭如何使用 C# 將 HTML 轉換為純文本文件:

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);
    }
}

使用 C# 以不同的方法從 HTML 中提取文本

我們已經學習瞭如何使用 INodeIterator 將 HTML 轉換為文本。同樣,還有其他幾種方法可以實現這些要求。您可以創建自定義方法來提取文本,或使用 TextContent 屬性,如以下步驟所述:

  1. 加載輸入 HTML 文檔
  2. 定義一個用戶定義的方法
  3. 檢查每個 NodeType 以查看它是元素節點還是文本節點
  4. 使用 TextContent 屬性獲取文本元素
  5. 保存輸出 TXT 文件

下面的代碼片段解釋了在 C# 中將 HTML 轉換為純文本的這兩種不同方法:

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();
}

使用 C# 將 URL 網頁 HTML 轉換為文本

我們已經介紹了離線網頁 HTML 到文本的轉換,其中 HTML 文件需要通過將其下載到磁盤上而存在。讓我們更進一步,您甚至不需要將 HTML 文件保存在磁盤上。您可以通過指定 URL 直接將網頁轉換為使用 C# 的 TXT 文件。例如,讓我們通過以下步驟將 Aspose.HTML for .NET API 的產品頁面轉換為 TXT 文件:

  1. 初始化 HTMLDocument 對象並指定 URL
  2. 讀取HTML格式的文本內容
  3. 使用從網頁中提取的文本寫入 TXT 文件

下面的代碼顯示瞭如何使用 C# 將 URL 網頁 HTML 轉換為文本:

// 使用 URL 初始化 HTMLDocument 對象
HTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net");
            
// 讀取HTML格式的文本內容
String text = document.Body.TextContent;
            
// 將提取的文本寫入 TXT 文件
File.WriteAllText("Webpage.txt", text);

結論

在本文中,我們討論瞭如何將 HTML 文件轉換為純文本、從 HTML 中提取文本,以及使用 C# 將在線網頁 URL 轉換為 TXT 文件格式。您可以使用不同的方法,如果您需要任何進一步的幫助,請隨時通過 免費支持論壇 與我們聯繫。

也可以看看

提示:您可能對免費的 Text to GIF Converter 感興趣,它允許您從文本生成動畫。