翻譯|使用教程|編輯:李顯亮|2020-12-18 09:47:22.490|閱讀 534 次
概述:HTML的內(nèi)容使用不同的標(biāo)簽進(jìn)行區(qū)分,可以使用C#語言輕松地將HTML轉(zhuǎn)換為純文本,而忽略開始和結(jié)束標(biāo)記。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
HTML是一種標(biāo)記語言,廣泛用于網(wǎng)站,Web應(yīng)用程序等中。HTML的內(nèi)容使用不同的標(biāo)簽進(jìn)行區(qū)分。您可以使用C#語言輕松地將HTML轉(zhuǎn)換為純文本,而忽略開始和結(jié)束標(biāo)記。
同樣,根據(jù)您的要求,可能會(huì)有一些級(jí)聯(lián)的樣式表規(guī)范,JavaScript或HTML的任何其他部分。因此,就像從HTML文檔中提取文本一樣。讓我們?yōu)g覽以下部分以獲取詳細(xì)信息:
您可以使用Aspose.HTML for .NET API將HTML轉(zhuǎn)換為純文本,點(diǎn)擊下方按鈕下方使用。
用于.NET API的Aspose.HTML基于DOM(文檔對(duì)象模型),因此您可以使用INodeIterator接口在API的不同節(jié)點(diǎn)之間進(jìn)行迭代。同樣,它使您可以定義一個(gè)NodeFilter并覆蓋用于過濾內(nèi)容的方法的控件。您可以忽略樣式,腳本或HTML文件中的任何其他元素,僅從其中選擇文本字符串。以下是使用C#將HTML轉(zhuǎn)換為純TXT文件的步驟:
下面的代碼顯示了如何使用C#將HTML轉(zhuǎn)換為純文本文件:
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); } }
我們已經(jīng)學(xué)習(xí)了如何使用INodeIterator將HTML轉(zhuǎn)換為Text。同樣,還有其他幾種方法可以滿足這些要求。您可以創(chuàng)建自定義方法來提取文本,也可以按照以下步驟中的說明使用TextContent屬性:
下面的代碼段說明了在C#中將HTML轉(zhuǎn)換為純文本的兩種不同方法:
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(); }
我們已經(jīng)介紹了脫機(jī)網(wǎng)頁HTML到文本的轉(zhuǎn)換,其中要求HTML文件通過將其下載到磁盤上而存在。讓我們更進(jìn)一步,您甚至不需要將HTML文件保存在磁盤上。您可以通過使用C#將網(wǎng)頁的URL指定為URL直接轉(zhuǎn)換為TXT文件。例如,讓我們通過以下步驟將Aspose.HTML for .NET API的產(chǎn)品頁面轉(zhuǎn)換為TXT文件:
下面的代碼顯示了如何使用C#將URL網(wǎng)頁HTML轉(zhuǎn)換為文本:
// 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);
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn