xpath (xml find)
大约 1 分钟
xpath (xml find)
表达式
| 表达式 | 描述 |
|---|---|
| node_name | 选取此节点的所有子节点 |
| / | 绝对路径,从根节点选取 |
| // | 相对路径,从所有节点中查找符合条件的节点,包括子节点和后代节点 |
| . | 选取当前节点 |
| .. | 选取当前节点的父节点 |
| @ | 选取属性值 |
节点类型
| 类型 | 描述 |
|---|---|
| Root | 根元素节点 |
| Element | 元素节点 |
| Text | 文本节点 |
| Attribute | 节点的属性 |
| Comment | 注释 |
通配符
| 通配符 | 描述 |
|---|---|
| * | 匹配任意元素节点 |
| @* | 匹配任意属性节点 |
| node() | 匹配任何类型的节点 |
函数或属性
| property | 描述 |
|---|---|
| text() | /div/text() = 获取文本,/div/[text()='xxx'] = 文本为xxx的元素 |
| starts-with(@attribute, 'xxx') | 属性名以xxx开头的元素 |
| contains(@attribute, '') | 属性名包含xxx的元素 |
| [@attribute=xxx and @attribute=xxx2] | 同时有两个属性值的元素 |
| text() | 子文本节点 |
| concat(string1,string2,...) | 连接所有字符串 |
| ceiling() | 向上取整 |
| floor() | 向下取整 |
| round() | 四舍五入 |
| sum() | 返回两个数的整合 |
谓词
| 谓词 | 描述 |
|---|---|
| [position()] | /div/[position() = 0]序号等于0的元素 |
| [last()] | 最后一个元素 |
| [@属性名 = '内容'] | 属性的内容=xxx的元素 |
| [元素 = xxx] | /div/[div = content] 元素的值等于xxx的 |
运算符
| 运算符 | 描述 |
|---|---|
| | | 计算两个节点集 |
| + | |
| - | |
| * | |
| div | 除法 |
| mod | 取余 |
| = | |
| != | |
| < | |
| > | |
| <= | |
| >= | |
| or | |
| and | |
| not() | 不等于xxx的xxx |
<!-- 选择根节点div元素 -->
//div
<!-- 选择元素为div并且属性id=‘my_id’的元素 -->
//div[@id='my_id']
选择包含id属性的元素
//div/@id