Html Agility Pack ── 一个解析HTML的工具
.NET 框架类库本身没有提供工具分析HTML,以前常用的做法是用正则表达式,或者浏览器控件,或者MSHTML组件,甚至SgmlReader。SgmlReader可以将HTML转化成XML,然后你就可以使用System.Xml命名空间下的类对文件进行查询。
CodePlex上有一个Html Agility Pack项目,是原生的.NET项目,不依赖MSHTML或者ActiveX/COM 对象。其中的HtmlDocument可以加载任何HTML文件(即使该文件是不well-formed的HTML),然后允许你使用类似于System.Xml的对象模型对文件进行查询。
官网地址:www.codeplex.com/htmlagilitypack
例如:
HtmlWeb webClient = new HtmlWeb();
HtmlDocument doc = webClient.Load("file.htm");
HtmlNodeCollection nodes = doc.DocumentElement.SelectNodes("/html[1]/body[1]/div")
foreach(HtmlNode node in nodes)
{
Console.WriteLine(node.InnerText.Trim());
}
doc = null;
webClient = null;
nodes = null;