xpath路径分为绝对路径和相对路径:
- //表示相对路径,表示选择任意位置的某个节点,不考虑它们的位置
- /表示绝对路径,表示从跟节点开始选取
通配符:
- *表示通配符,查找所有节点 //*[@id='login'] 查找所有id=login的节点
选择分支:
- //*/td[7]/a[1] 定位到第七个td节点,并在该节点下定位到第一个a节点 注意此处数字几就代表第几个节点,与代码中从0开始不一样
- //*td[last()]/a[last()] 定位到最后一个td下的、最后一个a节点
- last()表示最后一个,但是第一个不能用first()
选择属性:
- //input[@name] 定位所有包含name属性的input节点
- //input[@*] 定位出含有属性的input节点
- //input[@value='2'] 定位出value属性为2的input节点
- //input[@value='2'][name='login'] 多个属性定位
常用函数:
- contains(s1,s2) s1中包含s2,则返回true
- text() 获取元素的文本内容,精确查找
- starts-with(string1,string2) 从起始位置匹配字符串
-
ends-with(string1,string2) 如果 string1 以 string2 开始,则返回 true,否则返回 false。例子:starts-with('XML','X') 结果:true
例如 <a class="menu_hot" href="/ads/suth/promote.html">应用推广</a>
//*/a[contains(@href,'promote.html') 定位到href包含**的节点
//*/a[text()='应用推广'] 定位到文本内容为"推广管理"的节点
//*/a[starts-with(@href,'/ads')] 定位到 href以**开始的节点