Esiste un oggetto in C # che consente una facile gestione del DOM HTML?

c# dom dom-manipulation html-agility-pack

Domanda

Se ho una stringa che contiene l'html di una pagina che ho appena restituito da un post HTTP, come posso trasformarlo in qualcosa che mi permetta di attraversare facilmente il DOM?

Ho pensato che l'oggetto HtmlDocument avrebbe senso, ma non ha costruttore. Esistono tipi che consentono una facile gestione del DOM HTML?

Grazie,
opaco

Risposta accettata

HtmlDocument è un'istanza di un documento già caricato da un controllo WebBrowser. Quindi nessun ctor.

Html Agility Pack è di gran lunga la migliore libreria che ho usato per questo scopo

Un esempio dal wiki codeplex

HtmlDocument doc = new HtmlDocument();
doc.Load("file.htm");
foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href]"))
{
    HtmlAttribute att = link["href"];
    att.Value = FixLink(att);
}
doc.Save("file.htm");

L'esempio mostra il caricamento di un file ma ci sono sovraccarichi che consentono di caricare una stringa o un flusso.




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é