转载:XPath基本语法
出处:http://www.cnblogs.com/Miko2012/archive/2012/10/26/2740840.html
XPath的语法最基本的节点之间用/,属性用@,还有几个函数记住了基本问题就可以解决了。可以随时查手册
示例Xml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
<? 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 >
|
XPath的语法:
1. XPath中的符号
符号 |
说明 |
示例 |
示例说明 |
/ |
表示从根节点开始选择 |
/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基本语法相关推荐
- python爬虫xpath的语法
有朋友问我正则,,okey,其实我的正则也不好,但是python下xpath是相对较简单的 简单了解一下xpath: XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML ...
- CSS选择器与Xpath常用语法及对比
文章目录 写在前面 CSS选择器基本语法 一些不足 Xpath查询基本语法 二者的主要对比 相同 不同 语法方面 写在前面 写爬虫时候经常遇到HTML元素的定位问题,针对这个问题,主流的两种思路是CS ...
- 【selenium自动化】04 xpath高级语法css高级语法
xpath高级语法 # /html/body/section/div[1]/div[3]/ul/li[2]/a/i # xpath使用路径表达式来匹配xml文档或html文档中的节点或节点集 # 这个 ...
- crx header invalid_解决Chrome插件安装时程序包无效【CRX_HEADER_INVALID】(转载+xPath插件)...
最近安排让协助开发/维护爬虫工具类,主要涉及到网页内容的获取,主要使用python+xPath作为解析库,初次认识,感觉还不错! https://www.w3.org/TR/xpath/all/ ht ...
- (转载)Markdown基本语法
转载于和感谢: Markdown基本语法 前言: Markdown是一种纯文本格式的标记语言.通过简单的标记语法,它可以使普通文本内容具有一定的格式. 相比WYSIWYG编辑器 优点: 因为是纯文本, ...
- JSONPath库:使用类似Xpath的语法解析JSON数据
简介 JSONPath是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括:Javascript, Python, PHP 和 Java.JsonPath 对于 JSO ...
- 【转载】抽象语法树简介(有图)
转载自http://blog.chinaunix.net/uid-26750235-id-3139100.html 抽象语法树简介 (一)简介 抽象语法树(abstract syntax code,A ...
- 一文读懂XPath基本语法_XPath语法详解_XPath教程
因为最近在学习与整理有关python爬虫的文章,连带遇到XPath的使用,就顺便一起整理出来. XPath与自动化的关系 XPath是一门在XML文档中查找信息的语言,可用来在XML文档中对元素和属性 ...
- 【转载】CMake 语法 - 详解 CMakeLists.txt
作者:红橙Darren 链接:https://www.jianshu.com/p/528eeb266f83 来源:简书 目录 1. 初试 cmake 的 helloworld 2. 构建生成 .so ...
最新文章
- views 多个文件夹 netcore_Visual Studio 2019发布.NET Core项目部署或者独立运行的方法...
- 从零点五开始用Unity做半个2D战棋小游戏(六)
- JDBC实例--JDBC连接池技术解密,连接池对我们不再陌生
- Git--rebase合并提交
- 高光谱成像技术在茶叶中的应用研究进展
- 拓端tecdat|R语言对HullWhite短期利率模型仿真
- Java核心技术卷II:高级特性
- 软工文档——可行性研究报告
- 生物信息学_分子数据库(二)核酸
- arduino做一个表白程序
- 在夜神模拟器内部安装App
- jpg如何缩小kb?jpg图片压缩怎么弄?
- html语言文本框怎么做,HTML文本框参考样式
- 神经系统的组成结构图谱,神经系统的基本结构图
- 刘氏广传公家族七公子巨波公后裔V0.2
- 静态工厂方法优缺点个人理解
- PHP获取带中英文括号的内容
- K8s---HPA弹性伸缩
- [转帖]windows7/windows NT介绍
- 监控视频服务器协议,教你用Spcaserv架设网络视频监控 - 网络协议 - 电子发烧友网...
热门文章
- postgres数据库常见报错
- SQL中,like的SQL注入防止,使用预编译SQL(?)的写法
- html内嵌样式字体,html-通过内联C加载外部字体
- 【Oracle】创建用户
- Ubuntu火狐浏览器无法输入简体中文的解决方案
- MySql存储过程异常处理示例
- MYSQL问题解决方案:Access denied for user ‘root‘@‘localhost‘ (using password:YES)
- 转到Visual Studio中的匹配括号吗?
- myBatis的xml映射文件中传入list集合与数组做条件
- linux 延展集群如何设置,OCaml 4.11.0 发布,将函数式语言 Caml 在面向对象上进行延展...