xPath在C#中运用
<?xml version="1.0" encoding="utf-8" ?><pets> <cat color="black" weight="10"> <price>100</price> <desc>this is a black cat</desc> </cat> <cat color="white" weight="9"> <price>80</price> <desc>this is a white cat</desc> </cat> <cat color="yellow" weight="15"> <price>80</price> <desc>this is a yellow cat</desc> </cat> <dog color="black" weight="10"> <price>100</price> <desc>this is a black dog</desc> </dog> <dog color="white" weight="9"> <price>80</price> <desc>this is a white dog</desc> </dog> <dog color="yellow" weight="15"> <price>80</price> <desc>this is a yellow dog</desc> </dog></pets>|
符号 |
说明 |
示例 |
示例说明 |
|
/ |
表示从根节点开始选择 |
/pets |
选择根节点pets |
|
表示节点和子节点之间的间隔符 |
/pets/dog |
选择pets节点下的dog节点 |
|
|
//xx |
表示从整个xml文档中查找,而不考虑当前节点位置 |
//price |
选择文档中所有的price节点 |
|
. |
单个英文半角句点表示选择当前节点 |
/pets/. |
选择pets节点 |
|
.. |
双点,表示选择父节点 |
/pets/dog[0]/.. |
表示pets节点,也就是第一个dog节点的父节点 |
|
@xx |
表示选择属性 |
//dog/@color |
表示选择所有dog节点的color属性集合 |
|
[…] |
中括号表示选择条件,括号内为条件 |
//dog[@color=’white’] |
所有color为white的dog节点 |
|
//dog[/price<100] |
所有price字节点值小于100的dog节点 |
||
|
中括号内数字为节点索引,类似c#等语言中的数组,数组下标是从1开始的 |
//dog[1] |
第1个dog节点 |
|
|
//dog[last()] |
最后一个dog节点,last()是xPath内置函数 |
||
|
| |
单竖杠表示合并节点结合 |
//dog[@color=’white’] | //cat[@color=’white’] |
color属性为white的dog节点和color属性为white的cat节点 |
|
* |
星号表示任何名字的节点或者属性 |
//dog/* |
表示dog节点的所有子节点 |
|
//dog/@* |
表示dog节点的所有属性节点 |
|
关键字
|
说明 |
示例 |
示例说明 |
|
ancestor |
当前节点的父祖节点 |
ancestor::pig |
当前节点的祖先节点中的pig节点 |
|
ancestor-or-self |
当前节点以及其父祖节点 |
ancestor::pig |
|
|
attribute |
当前节点的所有属性 |
attribute::weight |
相当于@weight,attribute::和@是等价的 |
|
child |
当前节点的所有字节点 |
child::*[name()!=’price’] |
选择名字不是price的子节点 |
|
descendant |
子孙节点 |
descendant::*[@*] |
有属性的子孙节点 |
|
descendant-or-self |
子孙节点以及当前节点 |
descendant-or-self::* |
|
|
following |
Xml文档中当前节点之后的所有节点 |
following::* |
|
|
following-sibling |
当前节点的同父弟弟节点 |
following-sibling:: |
|
|
preceding |
Xml文档中当前节点之前的所有节点 |
preceding::* |
|
|
namespace |
选取当前节点的所有命名空间节点 |
namespace::* |
|
|
parent |
当前节点的父节点 |
parent:: |
相当于双点.. |
|
preceding-sibling |
当前节点之后的同父兄节点 |
preceding-sibling::* |
|
|
self |
当前节点 |
self::* |
相当于单点. |
xPath在C#中运用的更多相关文章
- 使用Xpath从网页中获取数据
/// <summary> /// 从官方网站中抓取产品信息存放在本地数据库中 /// </summary> /// <returns></returns&g ...
- 爬取伯乐在线文章(二)通过xpath提取源文件中需要的内容
爬取说明 以单个页面为例,如:http://blog.jobbole.com/110287/ 我们可以提取标题.日期.多少个评论.正文内容等 Xpath介绍 1. xpath简介 (1) xpath使 ...
- Xpath在选择器中正确,在代码中返回的是空列表问题
一.问题: 在进行爬虫的时候我们会用到xpath解析html文件,但是会有一种情况就是在xpath选择器中可以使用,但是在代码中就无法使用的情况. 二.原因: 1.是元素中有tbody的原因,这个元素 ...
- 正则和xpath在网页中匹配字段的效率比较
1. 测试页面是 https://www.hao123.com/,这个是百度的导航 2. 为了避免网络请求带来的差异,我们把网页下载下来,命名为html,不粘贴其代码. 3.测试办法: 我们在页面中 ...
- XPath在python中的高级应用
XPath在python的爬虫学习中,起着举足轻重的地位,对比正则表达式 re两者可以完成同样的工作,实现的功能也差不多,但XPath明显比re具有优势,在网页分析上使re退居二线. XPath介绍: ...
- scrapy xpath 从response中获取li,然后再获取li中img的src
lis = response.xpath("//ul/li") for li in lis: src = li.xpath("img/@src") # 如果xp ...
- java:利用xpath删除xml中的空节点
原始xml内容: <data> <a> </a> <b>b1</b> <awb> <awbpre>123</a ...
- [Java] 通过XPath获取XML中某个节点的属性
/** * Get PA Url * @author jzhang6 * @return url */ public String getPAUrl(){ String PAUrl = "& ...
- XPath语法 在C#中使用XPath示例 【转http://www.cnblogs.com/yukaizhao/archive/2011/07/25/xpath.html】非常详细的文章
XPath语法 在C#中使用XPath示例 XPath可以快速定位到Xml中的节点或者属性.XPath语法很简单,但是强大够用,它也是使用xslt的基础知识. 示例Xml: <?xml ve ...
随机推荐
- 第三章 深入分析Java Web的中文乱码问题(待续)
几种常见的编码格式 在Java中需要编码的场景 在Java中如何编解码 在Java Web中涉及的编解码 在JS中的编码问题 常见问题分析 一种繁简转换的实现方式
- PL/SQL批处理语句(一)BULK COLLECT
我们知道PL/SQL程序中运行SQL语句是存在开销的,因为SQL语句是要提交给SQL引擎处理,这种在PL/SQL引擎和SQL引擎之间的控制转移叫做上下文却换,每次却换时,都有额外的开销.然而,FORA ...
- MyBatis总结四:配置文件xml详解
XML 映射配置文件 MyBatis 的配置文件包含了影响 MyBatis 行为甚深的设置(settings)和属性(properties)信息.文档的顶层结构如下: configuration 配置 ...
- android task stack
http://www.android100.net/html/201402/22/5690.html
- day35-hibernate映射 03-Hibernate持久态对象自动更新数据库
持久态对象一个非常重要的能力:自动更新数据库. package cn.itcast.hibernate3.demo1; import static org.junit.Assert.*; import ...
- HTML->CSS->JS->PHP的顺序及相关网址(转)
如果你有耐心坚持一年以上的话, 我会推荐HTML->CSS->JS->PHP的顺序来学习. 1. HTML学习:首先学习HTML,HTML作为标记语言是非常容易学的,把w3schoo ...
- 列表控件JList的使用
--------------siwuxie095 工程名:TestUI 包名:com.siwuxie095.ui 类名:TestList.jav ...
- Mysql GROUP_CONCAT 使用注意事项
GROUP_CONCAT 函数返回一个字符串结果,该结果由分组中的值连接组合而成,常和 GROUP BY 连用. 如果需要自定义分隔符可以使用 SEPARATOR. 示例: SELECT GROUP_ ...
- Linux,du、df统计的硬盘使用情况不一致问题
[转]http://blog.linezing.com/?p=2136 Linux,du.df统计的硬盘使用情况不一致问题 在运维Linux服务器时,会碰到需要查看硬盘空间的情况,这时候,通常会使 ...
- OpenCV Mat数据类型指针ptr的使用
OpenCV Mat数据类型指针ptr的使用 cv::Mat image = cv::Mat(400, 600, CV_8UC1); //宽400,长600 uchar * data00 = imag ...