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 |