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):更深入地提炼所选的节点集

上一篇下一篇

猜你喜欢

热点阅读