节点
符号 |
描述 |
示例 |
// |
任意层级的子节点(从匹配的节点开始,不考虑位置) |
//span |
/ |
子节点 |
/span |
. |
当前节点 |
//span/. |
.. |
当前节点的父节点 |
//span/.. |
@ |
属性 |
//span[@class='xxx'] |
[num] |
特定节点(很多满足条件的节点) |
//span[1] |
* |
通配符 |
//*[@*='xxx'] |
运算符
符号 |
描述 |
示例 |
| |
或(针对节点) |
//span | //p |
= |
等于 |
//span[@class='xxx'] |
!= |
不等于 |
//span[@class!='xxx'] |
or |
或(针对节点属性) |
//span[@class='xxx' or @class='xxx1'] |
and |
且(针对节点属性) |
//span[@class='xxx' and @class='xxx1'] |
函数
符号 |
描述 |
示例 |
text() |
当前节点的文本(本质上是一个文本集合,如果和其他函数搭配使用,会默认取第一个文本,所以可能出现空text) |
//span[text()='xxx'] |
string() |
节点下的所有文本拼接组合成字符串 |
//span[string()='xxx'] |
normalize-space() |
去除文本前后空格,以及中间空格归一,可以搭配text() |
//span[normalize-space()='xxx'] |
concat(string,string,...) |
字符串的拼接 |
//span[concat(' ',@class,' ')=' xxx '] |
contains(string1,string2) |
模糊匹配,string1包含string2 |
//span[contains(@class,'xxx')] |
starts-with(string1,string2) |
string1 以 string2 开始 |
//span[starts-with(@class,'xxx')] |
发表评论