XPath语法
1. 路径
| 符号 | 意义 |
|---|---|
/ |
路径内部分割符 |
| 绝对路径 | 以/开头 |
| 相对路径 | 以节点名开头 |
2. 节点
| 符号 | 意义 |
|---|---|
// |
选取所有的匹配节点 |
/ |
选取根部的匹配节点 |
nodename |
选取此节点的所有子节点, 属于相对路径 |
. |
选取当前节点 |
.. |
选取当前节点的父节点 |
@ |
选取属性 |
3. 谓语条件(Predicate), 写在路径中
| 符号 | 意义 |
|---|---|
| [i] | 第i个元素, 从1开始 |
| last() | 最后一个 |
| last()-2 | 倒数第二个 |
| @lang | 有属性名为lang的节点 |
| @lang='en' | 有属性名为lang, 值为en的节点 |
| position() < n | 取n条元素 |
| node1[node2] | 必须含有node2元素的node1元素 |
| node1[node2>20] | 必须含有node2元素且node2元素值必须大于20的node1元素 |
4. 通配符
| 符号 | 意义 |
|---|---|
| * | 匹配任何元素节点 |
| @* | 匹配任何属性节点 |
| node() | 匹配任何节点 |
5. 多路径
多个路径使用|分割
6. 轴(Axes)
| 符号 | 意义 |
|---|---|
| ancestor | 选取当前节点的所有先辈(父、祖父等) |
| ancestor-or-self | 选取当前节点的所有先辈(父、祖父等)以及当前节点本身 |
| attribute | 选取当前节点的所有属性 |
| child | 选取当前节点的所有子元素 |
| descendant | 选取当前节点的所有后代元素(子、孙等) |
| descendant-or-self | 选取当前节点的所有后代元素(子、孙等)以及当前节点本身 |
| following | 选取文档中当前节点的结束标签之后的所有节点 |
| namespace | 选取当前节点的所有命名空间节点 |
| parent | 选取当前节点的父节点 |
| preceding | 选取文档中当前节点的开始标签之前的所有节点 |
| preceding-sibling | 选取当前节点之前的所有同级节点 |
| self | 选取当前节点 |
| following | 选取文档中当前节点的结束标签之后的所有节点 |
示例
| 符号 | 意义 |
|---|---|
| child::book | 选取所有属于当前节点的子元素的 book 节点 |
| attribute::lang | 选取当前节点的 lang 属性 |
| child:😗 | 选取当前节点的所有子元素 |
| attribute:😗 | 选取当前节点的所有属性 |
| child::text() | 选取当前节点的所有文本子节点 |
| child::node() | 选取当前节点的所有子节点 |
| descendant::book | 选取当前节点的所有 book 后代 |
| ancestor::book | 选择当前节点的所有 book 先辈 |
| ancestor-or-self::book | 选取当前节点的所有 book 先辈以及当前节点(如果此节 |
| child:😗/child::price | 选取当前节点的所有 price 孙节点 |

浙公网安备 33010602011771号