xpath是在xml文档中查找信息的语言, 其语法整理如下:
路径表达式(选取节点)
| div |
div下的所有子节点 |
| /div |
根节点下的div |
| //div |
匹配所有的div |
| . |
当前节点 |
| .. |
父节点 |
| @lang |
属性为lang的所有节点 |
谓语(某个节点下特定的节点)
| div[1] |
选取第一个节点 |
| div[last()] |
选取最后一个节点 |
| div[last()-1] |
选取倒数第二个节点 |
| div[positon()<3] |
选取前两个节点 |
| div[@lang] |
选取有lang属性的节点 |
| div[@lang='eng'] |
选取lang属性值为eng的节点 |
| div[price>35.00] |
选取price属性大于35的节点 |
通配符
| * |
所有节点 |
| @* |
任何属性 |
| | |
可以选取多个路径,用 | 隔开 |
| / |
连接路径选择 |
相对路径
| ./ancestor::* |
当前节点的所有先辈节点(父节点,祖父节点) |
| ./ancestor-or-self::* |
当前节点的所有先辈节点(父节点,祖父节点)及本身 |
| ./attribute::* |
选取当前节点的所有属性 |
| ./child::* |
当前节点的所有子节点 |
| ./descendant::* |
当前节点的所有后代节点(子节点、孙节点) |
| ./following::* |
选取文档中当前节点结束标签后的所有节点 |
| ./following-sibling::* |
选取当前节点之后的兄弟节点 |
| ./parent::* |
选取当前节点的父节点 |
| ./preceding::* |
选取文档中当前节点开始标签前的所有节点 |
| ./preceding-sibling::* |
选取当前节点之前的兄弟节点 |
| ./self::* |
选取当前节点 |
功能函数
| text() |
节点文本 |
| contains(@id,"ma") |
选取id属性包含 ma 的节点(div[contains(@id, ""ma)]) |
| starts-with(@id,"ma") |
选取id属性以 ma 开头的节点(div[starts-with(@id, ""ma)]) |