Xpath语法
2019-04-11 本文已影响0人
Devil灬
一、安装lxml库
pip install lxml
二、选取节点
表达式 | 功能 |
---|---|
/ | 匹配元素子节点 |
// | 匹配元素子孙节点 |
. | 获取当前节点 |
.. | 获取当前节点的父节点 |
@ | 获取属性 |
* | 匹配任何元素节点 |
@* | 匹配任何属性节点 |
三、谓语
表达式 | 功能 |
---|---|
/bookstore/book[1] | 选取 bookstore 子元素中第一个 book 元素。 |
/bookstore/book[last()] | 选取 bookstore 子元素中最后一个 book 元素。 |
/bookstore/book[last()-1] | 选取 bookstore 子元素中倒数第二个 book 元素。 |
/bookstore/book[position()<3] | 选取 bookstore 子元素中最前面的两个 book 元素。 |
//title[@lang] | 选取拥有 lang 属性的所有 title 元素。 |
//title[@lang='eng'] | 选取拥有值为 eng 的 lang 属性的所有 title 元素 |
/bookstore/book[price>35.00] | 选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00。 |
/bookstore/book[price>35.00]/title | 选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。 |
四、轴
表达式 | 功能 |
---|---|
ancestor | 选取当前节点的所有先辈(父、祖父等)。 |
ancestor-or-self | 选取当前节点的所有先辈(父、祖父等)以及当前节点本身。 |
attribute | 选取当前节点的所有属性。 |
child | 选取当前节点的所有子元素。 |
descendant | 选取当前节点的所有后代元素(子、孙等)。 |
descendant-or-self | 选取当前节点的所有后代元素(子、孙等)以及当前节点本身。 |
following | 选取文档中当前节点的结束标签之后的所有节点。 |
namespace | 选取当前节点的所有命名空间节点。 |
parent | 选取当前节点的父节点。 |
preceding | 选取文档中当前节点的开始标签之前的所有节点。 |
preceding-sibling | 选取当前节点之前的所有同级节点。 |
self | 选取当前节点。 |
五、步(step)
语法:轴名称::节点测试[谓语]
轴(axis):定义所选节点与当前节点之间的树关系
节点测试(node-test):识别某个轴内部的节点
零个或者更多谓语(predicate):更深入地提炼所选的节点集