XML Path 语言 (Xpath) 表达式使用路径表示法(像在 URL 中使用的一样)来为 XML 文档的各部分寻址。
表达式计算为生成节点集、布尔值、数字或字符串类型的对象。 例如,表达式 book/author 将返回包含在 <book> 元素中的
<author> 元素的节点集(如果这种元素已在源 XML 文档中声明的话)。 此外,XPath 表达式还可以包含谓词(筛选表达式)或函数调用。
例如,表达式 book[@type="Fiction"] 引用其 type 属性已设置为 "Fiction" 的 <book> 元素。
/
子运算符;选择左侧集合的直接子级。 此路径运算符出现在模式开头时,表示应从根节点选择该子级。
// 递归下降;在任意深度搜索指定元素。
此路径运算符出现在模式开头时,表示应从根节点递归下降。
. 指示当前上下文。
.. 当前上下文节点的父级。
*
通配符;选择所有元素,与元素名无关。
@ 属性;属性名的前缀。
@* 属性通配符;选择所有属性,与名称无关。
:
命名空间分隔符;将命名空间前缀与元素名或属性名分隔。
( ) 为运算分组,明确设置优先级。
[ ] 应用筛选模式。
[ ]
下标运算符;用于在集合中编制索引。
+ 执行加法。
- 执行减法。
div 根据 IEEE 754 执行浮点除法。
*
执行乘法。
mod 从截断除法返回余数。
此表不包括布尔运算符和集运算符,这两个运算符在布尔、比较和集表达式或集运算中列出。
优先级顺序(从最高优先级到最低优先级)的定义如下表所示。
优先级:( ) 分组 --》[ ] 筛选器 --》 / // 路径运算
分组运算符 () 仅适用于*路径表达式。 例如,(//author/degree | //author/name) 是有效的分组运算,但
//author/(degree | name) 不是。
筛选模式运算符 ([]) 的优先级高于路径运算符(/ 和 //)。 例如,表达式
//comment()[3] 选择相对于文档中任意位置备注的父级索引等于 3 的所有备注。 此表达式与表达式 (//comment())[3]
不同,后者选择相对于父级的所有备注集中的第三个备注。 前一个表达式可以返回多个备注,后一个表达式只能返回一个备注。
相关文章
- 11-24xpath之starts-with()
- 11-24百度热搜的各种爬取方法:xpath re bs4
- 11-24bs4和xpath的用法
- 11-24爬虫三 bs4&xpath&jsonpath
- 11-24爬虫之数据解析(bs4,Xpath)
- 11-24xpath爬取豆瓣电影top250
- 11-24XPATH 带命名空间数据的读取
- 11-24浅谈解析库XPath,bs4和pyquery
- 11-24找个谷歌的xpath真难
- 11-24Xpath helper插件