JavaScript 执行 XPath
1 2 3
| var a= document.evaluate("//span[text()='清单']/..", document, null, XPathResult.ANY_TYPE, null); var b=a.iterateNext(); b
|
XPath
定位方法
以下XPath
定位方法,都可以动态组合,需要用 /
或 //
分割定位函数。
/
:当前元素的下一级
//
:当前元素的所有子
通过元素名称定位
通过元素属性定位
1 2 3
| //*[@attribute='value'] //*[@id='myId'] //div[@id='myId']
|
通过多个属性定位
1 2 3
| //*[@attribute1='value' and @attribute2='value'] //*[@class='myClass' and @name='myName'] //div[@class='myClass' and @name='myName']
|
通过复杂属性行为
1 2
| //*[contains(concat(' ', normalize-space(@class), ' '), ' myClass ')] //div[contains(concat(' ', normalize-space(@class), ' '), ' myClass ')]
|
通过元素文本内容定位
1 2 3
| //*[text()='text'] //div[text()='text'] //button[text()='submit']
|
通过父级元素定位子元素
1 2
| //div/span 查询div直接子集下的span //div//span 查询div所有子集的span
|
通过元素本身获取父级元素
1 2 3
| //div/.. //div/../.. //*[attribute='value']/..
|
通过索引定位元素
1 2
| (//div)[1] 下表从1开始 //div/span[1]
|
获取下一个元素
1 2
| //div/following-sibling::div //div/following-sibling::span
|
1
| [not(contains(@style,'display: none;'))]
|
本文地址: https://github.com/maxzhao-it/blog/post/565f648c/