C#中是否有一个允许轻松管理HTML DOM的对象?

时间:2010-04-20 04:09:29

标签: c# dom html-agility-pack dom-manipulation

如果我有一个字符串,其中包含我刚刚从HTTP Post返回的页面中的html,我该如何将其转换为可让我轻松遍历DOM的内容?

我认为HtmlDocument对象有意义,但它没有构造函数。是否有任何类型可以轻松管理HTML DOM?

谢谢,
马特

1 个答案:

答案 0 :(得分:9)

HtmlDocument是WebBrowser控件已加载的文档实例。因此,没有ctor。

Html Agility Pack 是迄今为止我用于此目的的最佳图书馆

codeplex wiki的一个例子

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");

该示例显示了加载文件但有重载可让您加载字符串或流。