Jak przekonwertować HTML na tekst w C#

Ten prosty poradnik pokazuje, jak konwertować HTML na tekst w języku C#. W C# konwersja HTML do zwykłego tekstu może być łatwo osiągnięta przy użyciu kilku linii kodu dla dowolnej aplikacji opartej na .NET działającej na platformach Windows, macOS lub Linux.

Kroki konwersji HTML na tekst w C#

  1. Zainstaluj Aspose.HTML for .NET z menedżera pakietów NuGet
  2. Uwzględnij w swoim projekcie przestrzeń nazw Aspose.HTML
  3. Załaduj zawartość pliku HTML do String
  4. Utwórz instancję klasy HTMLDocument, aby załadować ciąg znaków zawierający kod HTML
  5. Utwórz instancję klasy INodeIterator, aby iterować przez węzły i dołączać w StringBuilder
  6. Na koniec zapisz przekonwertowany tekst z HTML na dysku

Aby uzyskać zwykły tekst z HTML C#, można efektywnie wykorzystać kilka wierszy kodu w dowolnej aplikacji opartej na platformie .NET. Proces rozpoczyna się od załadowania pliku HTML jako String do instancji HTMLDocument class przy użyciu metody File.ReadAllText. Następnie INodeIterator zostanie użyte do wyodrębnienia węzłów z HTML i dołączenia ich do StringBuilder. Na koniec wyodrębniony kod HTML w StringBuilder zostanie zapisany na dysku.

Kod do konwersji HTML na tekst w C#

using System;
using System.IO;
using System.Text;
using Aspose.Html;
using Aspose.Html.Dom.Traversal;
using Aspose.Html.Dom.Traversal.Filters;
namespace KbHtml
{
class Program
{
static void Main(string[] args)
{
// Set the API license to extract HTML text
License license = new License();
license.SetLicense("Aspose.Html.lic");
// Reading HTML file content
String HtmlContent = File.ReadAllText("Test2.html");
// Create an object of HTMLDocument
using (var HtmlDocument = new HTMLDocument(HtmlContent, ""))
{
// Initialize the instance of node iterator to iterate HTML
INodeIterator iterator = HtmlDocument.CreateNodeIterator(HtmlDocument, NodeFilter.SHOW_TEXT,
new StyleFilter());
StringBuilder Stringbld = new StringBuilder();
Aspose.Html.Dom.Node node;
// Iterate through Nodes
while ((node = iterator.NextNode()) != null)
Stringbld.Append(node.NodeValue);
Console.WriteLine(Stringbld.ToString());
File.WriteAllText(@"HtmlToText.txt", Stringbld.ToString());
}
}
}
class StyleFilter : NodeFilter
{
public override short AcceptNode(Aspose.Html.Dom.Node node)
{
// In order to avoid any element during fetching nodes, write the name of element in capital letters
return (node.ParentElement.TagName == "STYLE" || node.ParentElement.TagName == "SCRIPT"
? FILTER_REJECT : FILTER_ACCEPT);
}
}
}

Powyższy kod w C# konwertuje HTML na zwykły tekst za pomocą kilku wywołań API. Użyliśmy dostosowanej klasy StyleFilter, która dziedziczy klasę NodeFilter, aby zastąpić metodę AcceptNode, która odfiltrowuje niepożądane węzły z HTML podczas procesu konwersji.

W poprzednim temacie dowiedzieliśmy się, jak utwórz plik HTML w C#. Podczas gdy powyższy przykład w C# pobiera programowo zwykły tekst z pliku HTML.

 Polski