2.Xpath

1. xpath(一种解析html/xml的语言)
- 语法
- 选取节点
- nodename 选取此节点的所有子节点。
- * 表示选取任意节点
- / 从根节点选取。
- // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
- . 选取当前节点。
- .. 选取当前节点的父节点。
- @ 选取属性
- 案例
- //*[@id="kw"]
- //div 获取文档中所有的div
- //div/@class
- 谓语 用来查找某个特定的节点或者包含某个指定的值的节点。
- 谓语被嵌在方括号中
- //div[@class="active"] 选取class="active"的div
- //div[@class="active"]/span[last()] 选取属于class="active"的div子元素的倒数第一个span元素
- 轴 用来查找相对于当前节点的节点
- 使用语法 轴名称::节点名称[谓语]
//div[@class="coursedata"]/ul[2]/li
//div[@class="coursedata"]/child::ul[2]
//li[text()='发布作业']/preceding-sibling::li[1]
- ancestor 选取当前节点的所有先辈(父、祖父等)。
- parent 选取当前节点的父节点。
- descendant 选取当前节点的所有后代元素(子、孙等)。
- child 选取当前节点的所有子元素。
- preceding 选取文档中当前节点的开始标签之前的所有节点。
- preceding-sibling 选取当前节点之前的所有同级节点。
- following 选取文档中当前节点的结束标签之后的所有节点。
- following-sibling 选取当前节点之后的所有同级节点。
- 案例
-//li[text()='发布作业']/preceding-sibling::li[1] 选取text='发布作业'的li的前面的第一个兄弟节点li
- 函数
- text(): 元素的text内容
- //li[text()='发布作业'] text='发布作业' 的li
- contains(@属性名/text(), value): 包含内容
- //li[contains(@class, 'ls')] class包含'ls'的li
- 逻辑运算
- and 与
//div[@class="btn" and contains(@style, 'display:block')]
- or 或
posted @ 2021-01-02 15:28  WJ-HAHA  阅读(87)  评论(0编辑  收藏  举报