Есть ли в C # объект, который позволяет легко управлять HTML DOM? - PullRequest
6 голосов
/ 20 апреля 2010

Если у меня есть строка, содержащая html со страницы, которую я только что возвратил из HTTP Post, как я могу превратить ее в нечто, что позволит мне легко проходить через DOM?

Я полагал, что объект HtmlDocument будет иметь смысл, но у него нет конструктора. Существуют ли типы, которые позволяют легко управлять HTML DOM?

Спасибо,
Matt

1 Ответ

9 голосов
/ 20 апреля 2010

HtmlDocument является экземпляром документа, который уже загружен элементом управления WebBrowser. Таким образом, нет.

Html Agility Pack - безусловно, лучшая библиотека, которую я использовал для этой цели

Пример из вики-кода 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");

В этом примере показана загрузка файла, но существуют перегрузки, которые позволяют загружать строку или поток.

...