Converti Estrai testo HTML

HTML è un linguaggio di markup comunemente utilizzato in siti Web, applicazioni Web, ecc. I contenuti in HTML sono differenziati utilizzando tag diversi. Puoi convertire facilmente HTML in testo normale usando il linguaggio C# ignorando i tag di apertura e chiusura. Allo stesso modo, potrebbero esserci alcune specifiche dei fogli di stile a cascata, JavaScript o qualsiasi altra sezione dell’HTML secondo i tuoi requisiti. Pertanto, è come estrarre del testo da un documento HTML. Esaminiamo la seguente sezione per informazioni dettagliate:

Convertitore da HTML a testo normale in C#

Puoi convertire HTML in testo normale con l’API Aspose.HTML for .NET. Può essere facilmente configurato in un ambiente basato su .NET Framework utilizzando il seguente comando di installazione NuGet:

PM> Install-Package Aspose.Html

Converti HTML in file di testo usando INodeIterator in C#

Aspose.HTML per l’API .NET è basato su DOM (Document Object Model) in modo da poter scorrere diversi nodi dell’API utilizzando l’interfaccia INodeIterator. Allo stesso modo, ti dà il controllo per definire un NodeFilter e ignorare i metodi per filtrare i contenuti. Puoi ignorare lo stile, lo script o qualsiasi altro elemento nel file HTML per prelevarne solo la stringa di testo. Di seguito sono riportati i passaggi per convertire HTML in file TXT normale utilizzando C#:

  1. Leggi il file HTML di input
  2. Inizializza l’istanza di node iterator
  3. Crea un’istanza INodeIterator.
  4. Controlla il filtro stile
  5. Leggi il valore del nodo in una stringa
  6. Scrivi il contenuto di testo di HTML come file TXT

Il codice seguente mostra come convertire HTML in file di testo normale utilizzando C#:

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

// Crea un'istanza di documento HTML
using (var document = new HTMLDocument(content, ""))
{
    // Il primo modo per raccogliere elementi di testo dal documento
    // Inizializza l'istanza di 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());
}


///<summary>
/// Rappresenta un filtro utente creato per ignorare il contenuto degli elementi 'stile' e 'script'.
///</summary>
class StyleFilter : Aspose.Html.Dom.Traversal.Filters.NodeFilter
{
    public override short AcceptNode(Aspose.Html.Dom.Node n)
    {
        //Se vuoi evitare qualsiasi elemento, scrivi il suo nome in maiuscolo
        return (n.ParentElement.TagName == "STYLE" || n.ParentElement.TagName == "SCRIPT" ? FILTER_REJECT : FILTER_ACCEPT);
    }
}

Estrai testo da HTML con approcci diversi usando C#

Abbiamo imparato come convertire HTML in testo usando INodeIterator. Allo stesso modo, ci sono molti altri approcci per raggiungere questi requisiti. Puoi creare un metodo personalizzato per estrarre il testo o lavorare con la proprietà TextContent come spiegato nei passaggi seguenti:

  1. Carica il documento HTML di input
  2. Definire un metodo definito dall’utente
  3. Controlla ogni NodeType per vedere se si tratta di un nodo elemento o di un nodo di testo
  4. Ottieni elementi di testo usando la proprietà TextContent.
  5. Salva il file TXT di output

Il frammento di codice seguente spiega questi due diversi approcci per la conversione di HTML in testo normale in C#:

String text = "";
String content = File.ReadAllText(dataDir + "Test2.html");
// Crea un'istanza di documento HTML
var document = new HTMLDocument(content, "");

// Il secondo modo per raccogliere elementi di testo dal documento utilizzando il metodo personalizzato
text = GetContent(document.Body);

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

// Il terzo modo per raccogliere elementi di testo dal documento usando la proprietà TextContent
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();
}

Converti URL pagina Web HTML in testo utilizzando C#

Abbiamo già trattato la conversione da HTML a testo della pagina Web offline in cui è necessario che il file HTML esista scaricandolo sul disco. Facciamo un altro passo avanti in cui non è nemmeno necessario salvare il file HTML sul disco. Puoi convertire direttamente una pagina web, specificandone l’URL, in un file TXT usando C#. Ad esempio, convertiamo la pagina del prodotto di Aspose.HTML per .NET API in un file TXT con i passaggi seguenti:

  1. Inizializza l’oggetto HTMLDocument e specifica l’URL
  2. Leggi il contenuto del testo del formato HTML
  3. Scrivi il file TXT con il testo estratto dalla pagina web

Il codice seguente mostra come convertire l’URL della pagina Web HTML in testo utilizzando C#:

// Inizializza l'oggetto HTMLDocument con l'URL
HTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net");
            
// Leggi il contenuto del testo del formato HTML
String text = document.Body.TextContent;
            
// Scrivi il file TXT con il testo estratto
File.WriteAllText("Webpage.txt", text);

Conclusione

In questo articolo, abbiamo discusso di come convertire file HTML in testo normale, estrarre testo da HTML e URL di una pagina Web online in formato file TXT utilizzando C#. Puoi utilizzare approcci diversi e sentiti libero di metterti in contatto con noi tramite il Forum di supporto gratuito se hai bisogno di ulteriore assistenza.

Guarda anche

Suggerimento: potresti essere interessato a un Convertitore da testo a GIF gratuito che ti consente di generare animazioni dai testi.