用于.NET的HTML解析库

时间:2009-03-17 08:03:45

标签: .net html dom parsing

我正在寻找解析HTML的库来提取链接,表单,标签等。

LGPL或任何其他商业开发友好许可证更可取。

您是否有过使用其中一个库的经验?或者你能推荐另一个类似的图书馆吗?

1 个答案:

答案 0 :(得分:10)

HTML Agility Pack有这类事物的例子,并使用xpath进行熟悉的查询 - 例如(来自主页),简单地查找所有链接:

foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a@href")) {
    //...
}

修改

截至2012年6月19日,上面的代码以及 HTML Agility Pack Examples 页面上显示的唯一代码示例将无效。只需略微调整,如下所示。

HtmlDocument doc = new HtmlDocument();
doc.Load("file.htm");

foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
  HtmlAttribute att = link.Attributes["href"];
  att.Value = Foo(att); // fix the link
}
doc.Save("file.htm");