Come utilizzare il pacchetto Agility HTML

c# html html-agility-pack

Domanda

Come faccio a usare l' HTML Agility Pack ?

Il mio documento XHTML non è completamente valido. Ecco perché volevo usarlo. Come lo uso nel mio progetto? Il mio progetto è in C #.

Risposta popolare

Innanzitutto, installa il pacchetto nuget HTMLAgilityPack nel tuo progetto.

Quindi, ad esempio:

HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();

// There are various options, set as needed
htmlDoc.OptionFixNestedTags=true;

// filePath is a path to a file containing the html
htmlDoc.Load(filePath);

// Use:  htmlDoc.LoadHtml(xmlString);  to load from a string (was htmlDoc.LoadXML(xmlString)

// ParseErrors is an ArrayList containing any errors from the Load statement
if (htmlDoc.ParseErrors != null && htmlDoc.ParseErrors.Count() > 0)
{
    // Handle any parse errors as required

}
else
{

    if (htmlDoc.DocumentNode != null)
    {
        HtmlAgilityPack.HtmlNode bodyNode = htmlDoc.DocumentNode.SelectSingleNode("//body");

        if (bodyNode != null)
        {
            // Do something with bodyNode
        }
    }
}

(NB: questo codice è solo un esempio e non necessariamente l'approccio migliore / solo. Non utilizzarlo alla cieca nella propria applicazione).

Il metodo HtmlDocument.Load() accetta anche un flusso che è molto utile per l'integrazione con altre classi orientate al flusso nel framework .NET. Mentre HtmlEntity.DeEntitize() è un altro metodo utile per elaborare correttamente le entità html. (grazie Matteo)

HtmlDocument e HtmlNode sono le classi che utilizzerai di più. Simile a un parser XML, fornisce i metodi selectSingleNode e selectNodes che accettano le espressioni XPath.

Presta attenzione a HtmlDocument.Option?????? proprietà booleane. Questi controllano come i metodi Load e LoadXML elaboreranno il tuo HTML / XHTML.

C'è anche un file di aiuto compilato chiamato HtmlAgilityPack.chm che ha un riferimento completo per ciascuno degli oggetti. Questo è normalmente nella cartella di base della soluzione.




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché