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#
- Zainstaluj Aspose.HTML for .NET z menedżera pakietów NuGet
- Uwzględnij w swoim projekcie przestrzeń nazw Aspose.HTML
- Załaduj zawartość pliku HTML do String
- Utwórz instancję klasy HTMLDocument, aby załadować ciąg znaków zawierający kod HTML
- Utwórz instancję klasy INodeIterator, aby iterować przez węzły i dołączać w StringBuilder
- 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.