xpath 定位轴运算

2019-05-27  本文已影响0人  足__迹

轴可定义相对于当前节点的节点集。
ancestor 选取当前节点的所有先辈(父、祖父等)。
ancestor-or-self 选取当前节点的所有先辈(父、祖父等)以及当前节点本身
attribute(属性) 选取当前节点的所有属性
child 选取当前节点的所有子元素
descendant 选取当前节点的所有后代元素(子、孙等)
descendant-or-self 选取当前节点的所有后代元素(子、孙等)以及当前节点本身
following 选取文档中当前节点的结束标签之后的所有节点。
parent 选取当前节点的父节点。
preceding 选取文档中当前节点的开始标签之前的所有节点
preceding-sibling 选取当前节点之前的所有同级节点。
self 选取当前节点

位置路径表达式

轴(axis)
定义所选节点与当前节点之间的树关系
节点测试(node-test)
识别某个轴内部的节点
零个或者更多谓语(predicate)
更深入地提炼所选的节点集

实例 轴名称::节点测试[谓语]
child::book 选取所有属于当前节点的子元素的 book 节点。
attribute::lang 选取当前节点的 lang 属性。
child::* 选取当前节点的所有子元素。
attribute::* 选取当前节点的所有属性。
child::text() 选取当前节点的所有文本子节点。
child::node() 选取当前节点的所有子节点。
descendant::book 选取当前节点的所有 book 后代。
ancestor::book 选择当前节点的所有 book 先辈。
ancestor-or-self::book 选取当前节点的所有 book 先辈以及当前节点(如果此节点是 book 节点)
child::*/child::price 选取当前节点的所有 price 孙节点。

练习百度界面:百度输入框

子节点: child
//span[@class = 'btn_wr s_btn_wr bg']/child::input

当前节点的属性:attribute
//input/attribute::id

选取文本子节点
//div[@id="u_sp"]/child::text()

选取当前节点的所有子节点
//div[@id="u_sp"]/child::node()

后代节点:descendant
//*[@id="form"]/descendant::input[@type='text']

上一篇 下一篇

猜你喜欢

热点阅读