
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#
- Converti HTML in file di testo usando INodeIterator in C#
- Estrai testo da HTML con approcci diversi usando C#
- Converti URL pagina Web HTML in testo utilizzando C#
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#:
- Leggi il file HTML di input
- Inizializza l’istanza di node iterator
- Crea un’istanza INodeIterator.
- Controlla il filtro stile
- Leggi il valore del nodo in una stringa
- 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:
- Carica il documento HTML di input
- Definire un metodo definito dall’utente
- Controlla ogni NodeType per vedere se si tratta di un nodo elemento o di un nodo di testo
- Ottieni elementi di testo usando la proprietà TextContent.
- 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:
- Inizializza l’oggetto HTMLDocument e specifica l’URL
- Leggi il contenuto del testo del formato HTML
- 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.