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 ...
随机推荐
- Mybatis 一对一(OneToOne)关系映射__INSERT
今天测试Ibatis的一对一的关联映射时总是出现错误,其中很多的错误都是自己不小心写错的..现把整个Ibatis源代码记录下来,以便以后熟记: 1.数据库脚本: CREATE TABLE t_pers ...
- mysql高可用集群——MHA架构
目录1.下载2.搭建mha 2.1 系统配置 2.2 架构 2.3 添加ssh公钥信任 2.4 安装mha节点 2.5 manager配置文件 2.6 检查 2.7 启动manager进程 2.8 碰 ...
- explain之三:MYSQL EXPLAIN语句的extended 选项学习体会,分析诊断工具之二
MySQL 的explain命令有一个extended选项,我想可以很多人都没有注意,因为它对命令的输出结果没有任何改变,只是增加了一个warning.这个 warning中显示了MySQL对SQL的 ...
- 开发环境入门 linux基础 (部分)nginx和nfs
nginx和nfs 复习总结 rpm -ivh 软件包 --nodeps (没有依赖性安装) rpm -ivh 软件包 --force (覆盖安装) yum -y upgrade 升级所有包,不改变软 ...
- mysql添加用户
增加新用户: 格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码" 例1.增加一个用户test1密码为abc,让他可以在任 ...
- DAY10-MYSQL数据类型
一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 详细参考: http://www.runoob.com/mysql/mysql-data ...
- java中用正则表达式判断中文字符串中是否含有英文或者数字
public static boolean includingNUM(String str)throws Exception{ Pattern p = Pattern.compile(" ...
- [poj1703]Find them, Catch them(种类并查集)
题意:食物链的弱化版本 解题关键:种类并查集,注意向量的合成. $rank$为1代表与父亲对立,$rank$为0代表与父亲同类. #include<iostream> #include&l ...
- 学习CSS的思路(转)
两周之前写过该系列的第一篇,其实当时只是一个想法,这段时间迟迟未更新,是在思考一个解决过程.现在初有成效,就开更吧. 1. 一个段子 开题不必太严肃,写博客也不像写书,像聊天似的写东西是最好的表达方式 ...
- Python01 python入门介绍
1 python简介 1.1 为什么学python python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van ...