2010-04-20 11 views
6

Se ho una stringa che contiene l'html da una pagina che ho appena restituito da un post HTTP, come posso trasformarlo in qualcosa che mi consenta di attraversare facilmente il DOM?Esiste un oggetto in C# che consente una facile gestione del DOM HTML?

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

Grazie,
Matt

risposta

9

Il HtmlDocument è un esempio 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 carica una stringa o un flusso.  

+0

Impressionante, grazie! – Matt