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)]) |