HTML Agility Pack (link) este o solutie de pe CodePlex creata in .NET, care permite manipularea fisierelor HTML din aplicatii web.
Contine proiectul propriu-zis de tipul Class library si un folder virtual cu 4 proiecte exemple de utilizare (conversii in XML, TXT si RSS).
Un obiect HTML poate fi obtinut dintr-un TextReader, o cale sau un Stream prin metoda Load (are 11 overload-uri), sau direct din continutul html in format string prin metoda LoadHtml.
Exemplu:
//continutul HTML obtinut ca byte array prin WebClient si apoi convertit in string cu ajutorul UTF8Encoding
string contentHTML;
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(contentHTML);
Pentru accesarea unui anumit element din DOM se foloseste XPATH.
HtmlNode nod = doc.DocumentNode.SelectSingleNode("//div[@class=align_right]/table[@id]");
De asemenea se pot parcurge noduri din intreaga ierarhie, sau cele direct inrudite Parent, Sibling sau Child sau se pot obtine direct atributele sau continutul lor.