C#中是否有一个对象可以轻松管理HTML DOM?

7

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

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

谢谢,
马特

1个回答

11

HtmlDocument是WebBrowser控件已经加载的文档的实例,因此没有构造函数。

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

这个示例展示了如何加载文件,不过还有一些重载方法可以让你加载字符串或流。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接