Xpath常用语法
Xpath
是一门在XML
文档中查找信息的语言。
Xpath
用来在XML
文档中对元素和属性进行遍历。
Xpath工具推荐
chrome 插件 XPath Helper
快捷键:
CTRL+SHIFT+X
:开启- 长按
CTRL+SHIFT+鼠标
:提取段落
Xpath语法
常用路径表达式
表达式 | 描述 |
---|---|
/ | 从根节点选取 |
nodename | 选取节点的所有子节点 |
// | 选取当前节点选择所有匹配文档中的节点 |
. | 选择当前节点 |
… | 选择当前节点的父节点 |
@ | 选取属性 |
谓语条件
"""
<store>
<apple>
<title lang="eng">two</title>
<price>1.99</price>
</apple>
<orange>
<title lang="ch">one</title>
<price>2.95</price>
</orange>
</store>
"""
- 查找某个特定的信息或者包含某个指定的值的节点。
- 谓语是被嵌在方括号中,都写在方括号"[]"中,表示对节点进行进一步的筛选。
路径表达式 | 结果 |
---|---|
/store/apple[1] | 选取第一个apple元素 |
/store/apple[last()] | 选取最后一个apple元素 |
/store/apple[position()❤️] | 选取前两个apple元素 |
//title[@lang] | 选取有lang属性的title元素 |
//title[@lang=‘ch’] | 选取lang属性为ch的title元素 |
//apple[price>1.00] | 选取的apple元素的price值大于1 |
//apple[price>1.0]/tile | 选取的apple元素的price值大于1的title元素 |
未知节点
通配符 | 描述 |
---|---|
* | 匹配任何节点 |
@* | 匹配任何属性节点 |
/store/*
:选取store
所有子元素//*
:选取文档所有元素//title[@*]
:选取带有属性的title
元素
选取若干路径
在路径表达式中使用
|
运算符,选取路径
路径表达式 | 结果 |
---|---|
//store/title | //store/price |
//title | //price |
//store/title | //price |
高级用法
contains
用法//title[contains(text,'cn')]
查询text
节点值中带有cn
字符串的title
节点
and
用法//title[contains(text,'cn') and contains(@ID, '1')]
查询所有text
节点值中带有cn
字符串并且属性ID
值中有1
的title
节点
not
用法title[not(@data)]
不包含data
属性的title节点
count
用法count(//title)
统计title
节点的数量
concat
用法concat(//title[@data="one"]/text(),//title[@data="three"]/text())
字符串链接
string
用法string(//title)
解析第一个匹配到节点下的值