XPath 节点(Node)
在 XPath 中,有七种类型的节点:
- 元素、属性、文本、命名空间、处理指令、注释以及文档节点(或称为根节点)
节点关系:
- 父(Parent:每个元素以及属性都有一个父)
- 子(Children:元素节点可有零个、一个或多个子)
- 同胞(Sibling:拥有相同的父的节点)
- 先辈(Ancestor:某节点的父、父的父,等等)
- 后代(Descendant:某个节点的子,子的子,等等)
XPath 语法
表达式 | 描述 |
---|---|
nodename | 选取此节点的所有子节点。 |
/ | 从根节点选取。 |
// | 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 |
. | 选取当前节点。 |
.. | 选取当前节点的父节点。 |
@ | 选取属性。 |
在 Chrome 调试工具中使用
$x(xpath_expr)
XPATH基础
.//*[position() mod 2 =0] 取单数行
.//*[poition()<last()] 取第一行到倒数第二行
//b[text()=' 发文机关: ']/../text()
Axes轴的使用
child:选取当前节点的所有子元素
attribute:选取当前节点的所有属性
ancestor:父辈元素 / ancestor-or-self:父辈元素及当前元素
descendant:后代元素/ descendant-or-self:后代元素及当前元素
following:选取文档中当前节点的结束标签之后的所有节点
namespace:选取当前节点的所有命名空间节点
parent:选取当前节点的父节点
preceding:选取文档中当前节点的开始标签之前的所有节点
preceding-sibling:选取当前节点之前的所有同级节点
self:选取当前节点
.//span[contains(., "兼职日薪:")]/following::li[1]
image特殊用法
//div[span]:说明div里有span的子元素
.//*[@class="local-box-ul"]//li[a][last()]//a
image
网友评论