翻譯|使用教程|編輯:李顯亮|2020-12-18 09:47:22.490|閱讀 534 次
概述:HTML的內容使用不同的標簽進行區分,可以使用C#語言輕松地將HTML轉換為純文本,而忽略開始和結束標記。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
HTML是一種標記語言,廣泛用于網站,Web應用程序等中。HTML的內容使用不同的標簽進行區分。您可以使用C#語言輕松地將HTML轉換為純文本,而忽略開始和結束標記。
同樣,根據您的要求,可能會有一些級聯的樣式表規范,JavaScript或HTML的任何其他部分。因此,就像從HTML文檔中提取文本一樣。讓我們瀏覽以下部分以獲取詳細信息:
您可以使用Aspose.HTML for .NET API將HTML轉換為純文本,點擊下方按鈕下方使用。
用于.NET API的Aspose.HTML基于DOM(文檔對象模型),因此您可以使用INodeIterator接口在API的不同節點之間進行迭代。同樣,它使您可以定義一個NodeFilter并覆蓋用于過濾內容的方法的控件。您可以忽略樣式,腳本或HTML文件中的任何其他元素,僅從其中選擇文本字符串。以下是使用C#將HTML轉換為純TXT文件的步驟:
下面的代碼顯示了如何使用C#將HTML轉換為純文本文件:
String content = File.ReadAllText(dataDir + "Test2.html"); // Create an instance of HTML document using (var document = new HTMLDocument(content, "")) { // The first way of gathering text elements from document // Initialize the instance of node iterator 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()); } ////// Represents a user filter created in order to ignore content of the 'style' and 'script' element. ///class StyleFilter : Aspose.Html.Dom.Traversal.Filters.NodeFilter { public override short AcceptNode(Aspose.Html.Dom.Node n) { //If you want to avoid any element, write its name in capital letters return (n.ParentElement.TagName == "STYLE" || n.ParentElement.TagName == "SCRIPT" ? FILTER_REJECT : FILTER_ACCEPT); } }
我們已經學習了如何使用INodeIterator將HTML轉換為Text。同樣,還有其他幾種方法可以滿足這些要求。您可以創建自定義方法來提取文本,也可以按照以下步驟中的說明使用TextContent屬性:
下面的代碼段說明了在C#中將HTML轉換為純文本的兩種不同方法:
String text = ""; String content = File.ReadAllText(dataDir + "Test2.html"); // Create an instance of HTML document var document = new HTMLDocument(content, ""); // The second way of gathering text elements from document by using custom method text = GetContent(document.Body); File.WriteAllText("Test.txt", text); // The third way of gathering text elements from document by using TextContent property 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到文本的轉換,其中要求HTML文件通過將其下載到磁盤上而存在。讓我們更進一步,您甚至不需要將HTML文件保存在磁盤上。您可以通過使用C#將網頁的URL指定為URL直接轉換為TXT文件。例如,讓我們通過以下步驟將Aspose.HTML for .NET API的產品頁面轉換為TXT文件:
下面的代碼顯示了如何使用C#將URL網頁HTML轉換為文本:
// Initialize HTMLDocument object with URL HTMLDocument document = new HTMLDocument("http://products.aspose.com/html/net"); // Read the text contents of the HTML format String text = document.Body.TextContent; // Write the TXT file with extracted text File.WriteAllText("Webpage.txt", text);
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn