C# HTML解析工具HtmlAgilityPack XPath 模糊查询not()函数和contains()函数
2016-10-01 11:51
651 查看
如果想使用Xpath过滤属性中含有或不含有等逻辑判断,需要以下两个函数
Xpath 的not()函数 不含后指定属性等
contains() 属性中含有指定字符串的过滤
实例说明1
实例3:查找指定属性含有字符串的节点
如果需要更复杂的过滤筛选可以自定义判断
另一种解析方式,假如我们需要根据div的class属性是否包含post值来提取div中的InnerText:
可以用以下方法来提取符合条件的所有HtmlNode节点
提取得到节点数据之后,根据实际处理即可。
更多:
C# HTML解析工具HtmlAgilityPack使用实例(二)--Web页面
C# HTML解析工具HtmlAgilityPack使用实例(一)
C# HTML解析工具HtmlAgilityPack使用简介
Xpath 的not()函数 不含后指定属性等
contains() 属性中含有指定字符串的过滤
实例说明1
//选择不包含class属性的节点 var result = node.SelectNodes(".//span[not(@class)]"); //选择不包含class和id属性的节点 var result = node.SelectNodes(".//span[not(@class) and not(@id)]"); //选择不包含class="expire"的span var result = node.SelectNodes(".//span[not(contains(@class,'expire'))]"); //选择包含class="expire"的span var result = node.SelectNodes(".//span[contains(@class,'expire')]");实例2:去除指定属性和值的节点
//获取列表,去除class=all和class=tableRule 的tr节点 HtmlNodeCollection col = main.SelectNodes("//tr[not(contains(@class,'all')) and not(contains(@class,'tableRule'))]");
实例3:查找指定属性含有字符串的节点
HtmlNode name = node.SelectSingleNode("//td[contains(@class,'sName')]");
如果需要更复杂的过滤筛选可以自定义判断
另一种解析方式,假如我们需要根据div的class属性是否包含post值来提取div中的InnerText:
<div id="post-405" class="post-405 post type-post status">inner text</div> <div id="post-105" class="post-105 post type-post status">inner text</div> <div id="post-5" class="post-5 post type-post status">inner text</div>
可以用以下方法来提取符合条件的所有HtmlNode节点
var results = doc.DocumentNode .Descendants("div") .Where(x=>x.Attributes.Contains("class") && x.Attributes["class"].Value.Contains("post"));
提取得到节点数据之后,根据实际处理即可。
更多:
C# HTML解析工具HtmlAgilityPack使用实例(二)--Web页面
C# HTML解析工具HtmlAgilityPack使用实例(一)
C# HTML解析工具HtmlAgilityPack使用简介
相关文章推荐
- C# HTML解析工具HtmlAgilityPack使用实例(一)
- C# HTML解析工具HtmlAgilityPack使用简介
- [c#] Html Agility Pack 解析HTML
- C#:使用HtmlAgilityPack解析Html
- 【转】C#类似Jquery的html解析类HtmlAgilityPack基础类介绍及运用
- c#蜘蛛程序之HTML解析利器HtmlAgilityPack
- c#蜘蛛程序之HTML解析利器HtmlAgilityPack
- 黄聪:C#类似Jquery的html解析类HtmlAgilityPack基础类介绍及运用
- C# HTML解析 HtmlAgilityPack
- c#HtmlAgilityPack解析html
- 黄聪:HtmlAgilityPack,C#实用的HTML解析类简介
- C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)
- 黄聪:HtmlAgilityPack,C#实用的HTML解析类 ---- HtmlNode类
- 使用C#和HtmlAgilityPack解析HTML
- C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)
- 【原创】C# 多线程采集工具(使用 HtmlAgilityPack 工具)
- 【C#】通过HtmlAgilityPack+XPath来优化网页采集学习笔记
- C# HTML解析利器HtmlAgilityPack
- C#解析html源码的框架类HtmlAgilityPack
- 黄聪:HtmlAgilityPack,C#实用的HTML解析类简介