Konvertieren Sie HTML-Text extrahieren

HTML ist eine Auszeichnungssprache, die häufig in Websites, Webanwendungen usw. verwendet wird. Inhalte in HTML werden anhand verschiedener Tags unterschieden. Sie können HTML mithilfe der C# Sprache problemlos in einfachen Text konvertieren, während Sie die öffnenden und schließenden Tags ignorieren. Ebenso könnte es je nach Ihren Anforderungen einige Cascading Style Sheets-Spezifikationen, JavaScript oder einen anderen Abschnitt des HTML geben. Daher ist es wie das Extrahieren von Text aus einem HTML-Dokument. Lassen Sie uns den folgenden Abschnitt durchgehen, um detaillierte Informationen zu erhalten:

HTML zu Nur-Text Konverter in C#

Mit der API Aspose.HTML for .NET können Sie HTML in reinen Text konvertieren. Es kann einfach in einer .NET Framework-basierten Umgebung mit dem folgenden NuGet Installationsbefehl konfiguriert werden:

PM> Install-Package Aspose.Html

Konvertieren Sie HTML in eine Textdatei mit INodeIterator in C#

Aspose.HTML for .NET API basiert auf DOM (Document Object Model), sodass Sie mithilfe der INodeIterator-Schnittstelle durch verschiedene Knoten der API iterieren können. Ebenso gibt es Ihnen die Kontrolle, einen NodeFilter zu definieren und Methoden zum Filtern von Inhalten zu überschreiben. Sie können den Stil, das Skript oder jedes andere Element in der HTML Datei ignorieren, um nur die Textzeichenfolge daraus auszuwählen. Im Folgenden finden Sie die Schritte zum Konvertieren von HTML in eine einfache TXT Datei mit C#:

  1. HTML-Eingabedatei lesen
  2. Initialisieren Sie die Instanz des Knoteniterators
  3. Erstellen Sie eine INodeIterator-Instanz
  4. Suchen Sie nach Stilfilter
  5. Lesen Sie den Knotenwert in einer Zeichenfolge
  6. Schreiben Sie Textinhalte von HTML als TXT Datei

Der folgende Code zeigt, wie Sie HTML mit C# in eine Nur-Text Datei konvertieren:

String content = File.ReadAllText(dataDir + "Test2.html");

// Erstellen Sie eine Instanz des HTML-Dokuments
using (var document = new HTMLDocument(content, ""))
{
    // Die erste Methode zum Sammeln von Textelementen aus einem Dokument
    // Initialisieren Sie die Instanz des Knoteniterators
    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>
/// Stellt einen Benutzerfilter dar, der erstellt wurde, um den Inhalt der Elemente „style“ und „script“ zu ignorieren.
///</summary>
class StyleFilter : Aspose.Html.Dom.Traversal.Filters.NodeFilter
{
    public override short AcceptNode(Aspose.Html.Dom.Node n)
    {
        //Wenn Sie ein Element vermeiden möchten, schreiben Sie seinen Namen in Großbuchstaben
        return (n.ParentElement.TagName == "STYLE" || n.ParentElement.TagName == "SCRIPT" ? FILTER_REJECT : FILTER_ACCEPT);
    }
}

Extrahieren Sie Text aus HTML mit verschiedenen Ansätzen mit C#

Wir haben gelernt, wie man HTML mit INodeIterator in Text umwandelt. Ebenso gibt es mehrere andere Ansätze, um diese Anforderungen zu erfüllen. Sie können eine benutzerdefinierte Methode zum Extrahieren von Text erstellen oder mit der TextContent-Eigenschaft arbeiten, wie in den folgenden Schritten erläutert:

  1. Eingabe-HTML-Dokument laden
  2. Definieren Sie eine benutzerdefinierte Methode
  3. Überprüfen Sie jeden NodeType, um festzustellen, ob es sich um einen Elementknoten oder einen Textknoten handelt
  4. Rufen Sie Textelemente mit der Eigenschaft TextContent ab
  5. Ausgabe-TXT Datei speichern

Das folgende code snippet erläutert diese beiden unterschiedlichen Ansätze zum Konvertieren von HTML in reinen Text in C#:

String text = "";
String content = File.ReadAllText(dataDir + "Test2.html");
// Erstellen Sie eine Instanz des HTML-Dokuments
var document = new HTMLDocument(content, "");

// Die zweite Methode zum Sammeln von Textelementen aus dem Dokument mithilfe einer benutzerdefinierten Methode
text = GetContent(document.Body);

File.WriteAllText("Test.txt", text);

// Die dritte Methode zum Sammeln von Textelementen aus dem Dokument mithilfe der TextContent-Eigenschaft
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();
}

Konvertieren Sie URL-Webseiten-HTML in Text mit C#

Wir haben bereits die HTML zu Text-Konvertierung von Offline-Webseiten behandelt, bei der die HTML Datei vorhanden sein muss, indem sie auf die Festplatte heruntergeladen wird. Gehen wir noch einen Schritt weiter, wo Sie die HTML Datei nicht einmal auf der Festplatte speichern müssen. Sie können eine Webseite mithilfe von C# direkt in eine TXT Datei konvertieren, indem Sie ihre URL angeben. Konvertieren wir beispielsweise die Produktseite von Aspose.HTML for .NET API mit den folgenden Schritten in eine TXT Datei:

  1. Initialisieren Sie das Objekt HTMLDocument und geben Sie die URL an
  2. Lesen Sie den Textinhalt des HTML-Formats
  3. Schreiben Sie die TXT Datei mit extrahiertem Text von der Webseite

Der folgende Code zeigt, wie man URL-Webseiten-HTML mit C# in Text konvertiert:

// HTMLDocument objekt mit URL initialisieren
HTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net");
            
// Lesen Sie den Textinhalt des HTML-Formats
String text = document.Body.TextContent;
            
// Schreiben Sie die TXT Datei mit extrahiertem Text
File.WriteAllText("Webpage.txt", text);

Fazit

In diesem Artikel haben wir besprochen, wie Sie HTML Dateien in reinen Text konvertieren, Text aus HTML extrahieren und eine Online-Webseiten-URL mit C# in das TXT Dateiformat umwandeln. Sie können verschiedene Ansätze verwenden und sich gerne über das kostenlose Support-Forum mit uns in Verbindung setzen, wenn Sie weitere Hilfe benötigen.

Siehe auch

Tipp: Möglicherweise interessieren Sie sich für einen kostenlosen Text to GIF Converter, mit dem Sie Animationen aus Texten generieren können.