Se sei un programmatore C# alla ricerca di un modo efficiente per lavorare con i file HTML, allora questo articolo fa per te. Spiegheremo le basi di come funziona C# con i file HTML, dalla loro creazione da zero alla lettura e modifica di documenti esistenti. In questo articolo impareremo come creare, leggere e modificare file HTML in C#.
HTML (Hyper Text Markup Language) è un linguaggio utilizzato per creare siti web e pagine web. C#, d’altra parte, è un linguaggio di programmazione orientato agli oggetti utilizzato per creare applicazioni. Un file HTML contiene tag di markup utilizzati per formattare la struttura di una pagina Web per la visualizzazione nei browser. Possiamo facilmente manipolare i file HTML a livello di programmazione nelle applicazioni .NET. In questo articolo, esploreremo come usare C# per leggere, scrivere e modificare file HTML. Vedremo modi per analizzare il codice HTML per elementi specifici e creare nuovi elementi da zero o modificare quelli esistenti. Cominciamo!
In questo articolo saranno trattati i seguenti argomenti:
- API C# per creare, leggere e modificare file HTML
- Crea un file HTML
- Leggi un file HTML
- Modifica un file HTML
- Aggiungi contenuto HTML non elaborato in C#
API C# per creare, leggere e modificare file HTML
Per creare, leggere e modificare i file HTML, utilizzeremo l’API Aspose.HTML for .NET. È un’API di elaborazione HTML avanzata che consente la creazione, la modifica e l’estrazione di dati da documenti HTML. Consente inoltre di convertire e rendere i documenti HTML senza alcun software esterno.
La classe HTMLDocument dell’API rappresenta un documento HTML o la pagina HTML che vediamo nel browser. Il metodo CreateElement() di questa classe crea l’elemento HTML specificato da tagName. Il metodo CreateTextNode(string) crea un nodo di testo data la stringa specificata. Il metodo AppendChild() dell’interfaccia Node aggiunge un nodo alla fine dell’elenco di figli di un nodo padre specificato. Il metodo Save() salva il file di output. Puoi anche leggere ulteriori informazioni su DOM namespace nella documentazione.
Si prega di scaricare la DLL dell’API o installarla utilizzando NuGet.
PM> Install-Package Aspose.Html
Crea un file HTML in C#
Possiamo facilmente creare un file HTML seguendo i passaggi indicati di seguito:
- Innanzitutto, crea un’istanza della classe HTMLDocument.
- Successivamente, chiama il metodo CreateElement() per creare elementi come intestazione, paragrafo, testo, ecc.
- Quindi, chiama il metodo CreateTextNode() per aggiungere il nodo di testo.
- Successivamente, aggiungi il nodo creato all’elemento utilizzando il metodo AppendChild().
- Successivamente, allega gli elementi al corpo del documento utilizzando il metodo HTMLDocument.Body.AppendChild().
- Ripeti i passaggi precedenti per aggiungere altri elementi.
- Infine, salva il documento HTML utilizzando il metodo Save(). Prende il percorso del file di output come argomento.
L’esempio di codice seguente mostra come creare un file HTML usando C#.
// Questo esempio di codice mostra come creare un documento HTML.
// Crea un documento HTML vuoto
var document = new HTMLDocument();
// Aggiungi intestazione
// 1. Creare un elemento di intestazione
var h2 = (HTMLHeadingElement)document.CreateElement("h2");
// 2. Creare un elemento di testo
var text = document.CreateTextNode("This is Sample Heading!");
// 3. aggiungi un elemento di testo all'intestazione
h2.AppendChild(text);
// 4. Aggiungi intestazione to the document
document.Body.AppendChild(h2);
// Aggiungi paragrafo
// 1. Creare un elemento di paragrafo
var p = (HTMLParagraphElement)document.CreateElement("p");
// 2. Impostare un attributo personalizzato
p.SetAttribute("id", "first-paragraph");
// 3. Creare un nodo di testo
var paraText = document.CreateTextNode("This is first paragraph. ");
// 4. Aggiungere il testo al paragrafo
p.AppendChild(paraText);
// 5. Allegare il paragrafo al corpo del documento
document.Body.AppendChild(p);
// Aggiungi elenco ordinato
// Crea un elemento di paragrafo
var list = (HTMLOListElement)document.CreateElement("ol");
// Aggiungi il punto 1
var item1 = (HTMLLIElement)document.CreateElement("li");
item1.AppendChild(document.CreateTextNode("First list item."));
// Aggiungi il punto 2
var item2 = (HTMLLIElement)document.CreateElement("li");
item2.AppendChild(document.CreateTextNode("Second list item."));
// Aggiungi elementi li all'elenco
list.AppendChild(item1);
list.AppendChild(item2);
// Allega l'elenco al corpo del documento
document.Body.AppendChild(list);
// Salva il documento HTML in un file
document.Save(@"C:\Files\html\create-new-document.html");
Leggere un file HTML in C#
Nella sezione precedente, abbiamo creato un file HTML. Ora, caricheremo il file e ne leggeremo il contenuto seguendo i passaggi indicati di seguito:
- Carica un file HTML esistente utilizzando la classe HTMLDocument.
- Leggere e mostrare il contenuto di HTMLDocument.DocumentElement.OuterHTML.
L’esempio di codice seguente mostra come leggere un file HTML usando C#.
// Questo esempio di codice mostra come leggere un file HTML
// Preparare un percorso di output per il salvataggio di un documento
string documentPath = @"C:\Files\html\create-new-document.html";
// Carica un file HTML
var document = new HTMLDocument(documentPath);
// Scrivere il contenuto del documento nel flusso di output
Console.WriteLine(document.DocumentElement.OuterHTML);
<html><head></head><body><h2>This is Sample Heading!</h2><p id="first-paragraph">This is first paragraph. </p><ol><li>First list item.</li><li>Second list item.</li></ol></body></html>
Modifica un file HTML in C#
Possiamo anche aggiornare il contenuto dei file HTML. Possiamo aggiungere più nodi/elementi seguendo i passaggi sopra menzionati. Tuttavia, possiamo modificare le note/elementi esistenti seguendo i passaggi indicati di seguito:
- Carica un file HTML esistente utilizzando la classe HTMLDocument.
- Successivamente, chiama il metodo CreateTextNode() per aggiungere il nodo di testo.
- Successivamente, ottieni il primo elemento di paragrafo utilizzando il metodo GetElementsByTagName(). Prende “p” come argomento.
- Successivamente, chiama il metodo AppendChild() per aggiungere il nodo di testo.
- Ripetere i passaggi precedenti per modificare più elementi.
- Infine, salva il documento HTML utilizzando il metodo Save(). Prende il percorso del file di output come argomento.
L’esempio di codice seguente mostra come modificare un file HTML usando C#.
// Questo esempio di codice mostra come modificare il contenuto di un sito di un file HTML.
// Preparare un percorso di output per il salvataggio di un documento
string documentPath = @"C:\Files\html\create-new-document.html";
// Creare un'istanza di un documento HTML
var document = new HTMLDocument(documentPath);
// Crea un nodo di testo
var oldParaText = document.CreateTextNode("This is old first paragraph.");
// Ottieni il primo elemento del paragrafo
var p = (HTMLParagraphElement)document.GetElementsByTagName("p").First();
p.AppendChild(oldParaText);
// Salva il documento HTML in un file
document.Save(@"C:\Files\html\modify.html");
Il seguente esempio di codice mostra un esempio più complesso in cui aggiungiamo nuovi elementi e modifichiamo quelli esistenti.
// Questo esempio di codice mostra come e come modificare gli elementi in un file HTML in corso.
// Preparare un percorso di output per il salvataggio di un documento
string documentPath = @"C:\Files\html\create-new-document.html";
// Creare un'istanza di un documento HTML
var document = new HTMLDocument(documentPath);
// Crea un elemento di stile e assegna il colore verde a tutti gli elementi con nome di classe uguale a 'gr'.
var style = document.CreateElement("style");
style.TextContent = ".rd { color: red }";
// Trova l'elemento di intestazione del documento e aggiungi l'elemento di stile all'intestazione
var head = document.GetElementsByTagName("head").First();
head.AppendChild(style);
// Crea un nodo di testo
var oldParaText = document.CreateTextNode("This is old first paragraph.");
// Crea un elemento di paragrafo con il nome della classe 'gr'.
var p = (HTMLParagraphElement)document.GetElementsByTagName("p").First();
p.ClassName = "rd";
p.AppendChild(oldParaText);
// Crea un elemento di paragrafo
var newPara = (HTMLParagraphElement)document.CreateElement("p");
// Crea un nodo di testo
var paraText = document.CreateTextNode("This is second paragraph. ");
// Aggiungi il testo al paragrafo
newPara.AppendChild(paraText);
// Allega paragrafo al corpo del documento
document.Body.AppendChild(newPara);
// Salva il documento HTML in un file
document.Save(@"C:\Files\html\edit.html");
Aggiungi contenuto HTML non elaborato in C#
Possiamo aggiungere o modificare elementi aggiungendo manualmente codice HTML come contenuto utilizzando la proprietà InnerHTML di un elemento. Possiamo aggiungere HTML non elaborato seguendo i passaggi indicati di seguito:
- Innanzitutto, crea un’istanza della classe HTMLDocument.
- Successivamente, imposta il contenuto dell’elemento Body.InnerHTML come stringa HTML non elaborata.
- Infine, salva il documento HTML utilizzando il metodo Save(). Prende il percorso del file di output come argomento.
L’esempio di codice seguente mostra come aggiungere contenuto HTML non elaborato al file usando C#.
// Questo esempio di codice mostra come aggiungere codice HTML non elaborato al corpo HTML.
// Creare un'istanza di un documento HTML
using (var document = new HTMLDocument())
{
// Scrivi il contenuto del documento HTML nell'output della console
Console.WriteLine(document.DocumentElement.OuterHTML);
// Imposta il contenuto dell'elemento body
document.Body.InnerHTML = "<p>HTML is the standard markup language for Web pages.</p>";
/// Salva il documento HTML in un file
document.Save(@"C:\Files\html\using-innerHTML.html");
}
Ottieni la licenza gratuita
Puoi ottenere una licenza temporanea gratuita per provare Aspose.HTML for .NET senza limiti di valutazione.
Conclusione
In questo articolo abbiamo imparato a:
- creare documenti HTML in modo programmatico;
- caricare un documento HTML esistente dal percorso del disco locale;
- leggere l’HTML dal file caricato;
- aggiungere nuovi contenuti al file HTML esistente;
- modificare il contenuto esistente in C#.
Oltre a creare, leggere e modificare file HTML in C#, puoi saperne di più su Aspose.HTML per l’API .NET utilizzando documentation. In caso di qualsiasi ambiguità, non esitate a contattarci sul nostro forum di supporto gratuito.