基础路径表达式:
表达式 | 描述 |
---|---|
/ | 从根节点选取 |
// | 从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置 |
. | 选取当前节点 |
.. | 选取当前节点的父节点 |
@ | 选取属性 |
* | 选取所有 |
| | 选取若干个路径(或的关系) |
实例:
表达式 | 详解 |
---|---|
/html | 注释:假如路径起始于正斜杠(/),则此路径始终代表到某元素的绝对路径; |
/html/body | 选取html的子元素的所有body元素 |
//div | 选取所有div子元素,而不管位置 |
//body//div | 选取属于body元素的后代的所有div元素,而不管位置 |
//@id | 选取有id属性的所有元素 |
//body/div[last()-1] | 选取body下倒数第二个div元素 |
//body/div[position()<3] | 选取位置小于3的div元素 |
//body/div[1]/div[position()<2] | 选取body第一个div下的位置小于2的div元素 |
//a[@id] | 选取所有具有id属性的a元素 |
//a[@id='nav_default'] | 选取所有a元素,且id=nav_default |
//body//div[span>223] | 选取body元素下所有div元素,且其中的span元素值大于223 |
//body//div[span>22]/strong | 选取body子元素中的div元素下的所有strong元素,且其中的span元素值须大于22 |
//a[@class='btn ban-default ml-5' or @role='button'] | 选取所有满足class,role是或关系的a元素 |
//a[@class and @role] | 定位具备class\role属性的所有a标签 |
//body/* | 匹配body下所有子标签 |
//li|//ul | 选取所有的li元素和ul元素 |
//span[text()='你好'] | 选取所有span内容为你好的标签 |
Xpath 轴
轴名称 | 结果 |
---|---|
ancestor | 选取当前节点的所有先辈 |
ancestor-or-self | 选取当前节点的所有先辈及当前节点本身 |
attribute | 选取当前节点的所有属性 |
child | 选取当前节点的所有子元素 |
descendant | 选取当前节点的所有后代元素 |
descendant-or-self | 选取当前节点的所有后代元素和自身 |
following | 选取文档中当前节点的结束标签之后的所有节点 |
following-sibling | 选取文档中当前节点的结束标签之后的所有同级节点 |
namespace | 选取当前节点的所有命名空间节点 |
parent | 选取当前节点的父节点 |
preceding | 选取文档中,当前节点的开始标签之前的所有节点 |
preceding-sibling | 选取当前节点之前的所有同级节点 |
self | 选取当前节点 |
实例:
表达式 | 详解 |
---|---|
//*[@id='course']/child::ul | 选取id值为course的元素的所有ul子元素 |
//div/attribute::id | 选取具有id属性的所有div元素 |
//div[@id='course']/child::* | 选取id为course的元素的所有子元素 |
//div[@id='course']/descendant::li | 选取id值为course的元素的所有后代li元素 |
//*[@id='nav_default']/ancestor::li | 选择id为nav_default节点的所有li先辈 |
//*[@id='nav_default']/parent::li | 选择id为nav_default节点的所有li父辈 |
//*[@id='nav_default']/following::li | 选择id为nav_default节点结束之后的所有li标签 |
//h4/a[1]/following-sibling::*/.. | 选取h4/a[1]标签结束后的同级节点的上一级节点 |
网友评论