Xpath 轴 函数 谓语
函数
| 函数 | 例子 | 解释 |
|---|---|---|
| starts-with | //div[starts-with(@id,"maida")] | 选取 id 值为 maida 开头的 div |
| contains | //div[contains(@id,"maida")] | 选取 id 值含 maida 的 div |
| and | //div[starts-with(@id,"maida") and contains(@id,"hello")] | 选取 id 值为 maida 开头且含有 hello 的 div |
| text() | 1. //p/text() 2. div[contains(text(),"maida")] | 1. 获取 p 的文本内容 2. 选取文本内容含 maida 的 div |
| string | 1. string(.) 2. string(//div/a) | 1. 获取当前节点的文本内容组合成的单独字符串 2. 获取 //div/a 匹配到的首个节点的文本内容组成的单独字符串 |
轴
| 轴名 | 语法 | 解释 |
|---|---|---|
| ancestor | ./ancestor::* | 选取当前节点的所有先辈节点(父、祖父) |
| ancestor-or-self | ./ancestor-or-self::* | 选取当前节点的所有先辈节点以及节点本身 |
| descendant | ./descendant::* | 返回当前节点的所有后代节点(子节点、孙节点) |
| child | ./child::* | 返回当前节点的所有子节点 |
| parent | ./parent::* | 选取当前节点的父节点 |
| following | ./following::* | 选取文档中当前节点结束标签后的所有节点 |
| following-sibling | ./following-sibling::* | 选取当前节点之后的兄弟节点 |
| preceding | ./preceding::* | 选取文档中当前节点开始标签前的所有节点 |
| preceding-sibling | ./preceding-sibling::* | 选取当前节点之前的兄弟节点 |
| self | ./self::* | 选取当前节点 |
| attribute | ./attribute::* | 选取当前节点的所有属性 |
谓语
| 表达式 | 例子 | 解释 |
|---|---|---|
| /*/*[num] | //div/a[1] | 选取 div 下的第一个 a |
| /*/*[last()] | //div/a[last()] | 选取 div 下的最后一个 a |
| /*/*[last()-1] | //div/a[last()-1] | 选取 div 下的倒数第二个 a |
| /*/*[position()<3] | //div/a[position()<3] | 选取 div 下的前两个 a |
| //*[@maida] | //div[@maida] | 选取拥有 maida 属性的 div |
| //*[@id="maida"] | //div[@id="maida"] | 选取拥有 id 属性等于 maida 的 div |
| //*[@maida>num] | //div[@maida>20] | 选取拥有 maida 属性大于 20 的 div |