Toggle navigation
首页
技术
骑行
羽毛球
资讯
联络我
登录
.NET Core利用Html Agility Pack解析HTML
2017-10-23
.NET Core
> 写.NET Core的同学有福了,解析Html,可以用Html Agility Pack来快速得到需要的内容 # 什么是Html Agility Pack? Html Agility Pack是一个生成和解析和html文档的工具,使用XPATH,可以方便的获取需要的内容。 代码托管地址: https://github.com/zzzprojects/html-agility-pack 官网: http://html-agility-pack.net/ # 安装和使用 Html Agility Pack 使用Nuget,安装 HtmlAgilityPack 即可,目前最新版本为:1.6.1 ## 加载html 有如下3种方式来加载html: ```c# // From File var doc = new HtmlDocument(); doc.Load(filePath); // From String var doc = new HtmlDocument(); doc.LoadHtml(html); // From Web var url = "http://html-agility-pack.net/"; var web = new HtmlWeb(); var doc = web.Load(url); ``` ## 解析html 可以使用xpath或者linq方式来解析html: ```c# // With XPath var value = doc.DocumentNode .SelectNodes("//td/input") .First() .Attributes["value"].Value; // With LINQ var nodes = doc.DocumentNode.Descendants("input") .Select(y => y.Descendants() .Where(x => x.Attributes["class"].Value == "box")) .ToList(); ``` 关于xpath的语法,可以从下面链接查看更多用法:[XPath 语法](http://www.w3school.com.cn/xpath/xpath_syntax.asp) ### 常用实例: 路径表达式 | 结果 ------|--- /bookstore/book[1] | 选取属于 bookstore 子元素的第一个 book 元素。 /bookstore/book[last()] | 选取属于 bookstore 子元素的最后一个 book 元素。 /bookstore/book[last()-1] | 选取属于 bookstore 子元素的倒数第二个 book 元素。 /bookstore/book[position()<3] | 选取最前面的两个属于 bookstore 元素的子元素的 book 元素。 //title[@lang] | 选取所有拥有名为 lang 的属性的 title 元素。 //title[@lang='eng'] | 选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。 /bookstore/book[price>35.00] | 选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00。 /bookstore/book[price>35.00]/title | 选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。 * | 匹配任何元素节点。 @* | 匹配任何属性节点。 node() | 匹配任何类型的节点。 /bookstore/* | 选取 bookstore 元素的所有子元素。 //* | 选取文档中的所有元素。 //title[@*] | 选取所有带有属性的 title 元素。
×
本文为博主原创,如需转载,请注明出处:
http://www.supperxin.com
返回博客列表