• 【工作记录】xpath语法笔记


    XPath概述

    XPath(XML Path Language)是一门解析XML文档的语言,可在XML文档中对元素和属性进行遍历,被广泛用于解析HTML文档数据。

    HTML文档中XPath通过元素(即HTML标签)和属性(即HTML标签的属性)对元素进行定位和查找。

    XPath语法总结

    格式功能描述示例
    /后面直接跟子节点,表示绝对路径/html
    //全局查找,可以是任意位置,表示相对路径//div//input
    parent选取当前节点的父节点
    child选取当前节点的所有子节点
    preceding选取当前节点的开始标签之前的所有节点
    following选取当前节点的结束标签之后的所有节点
    ancestor选取当前节点的所有先辈节点 (父、祖父等)
    descendant选取当前节点的所有后代节点 (子、孙等)
    descendant-or-self选取当前节点的所有后代节点及当前节点本身
    .当前节点
    上级节点,即父节点
    @name取带有name属性的标签//input[@name]
    @class=‘’取class为指定值的标签//input[@class=‘xxx’]
    text()文本定位,常和contains()函数一起使用//div/a[text()]
    last()返回被处理节点的最后一个元素//div[@class=‘top’]/a[last()]
    position()匹配返回节点的索引位置//div[@class=‘top’]/a[position()=1]
    contains()匹配一个属性值中包含的字符串,用于模糊定位,//div[contains(@id,“top”)]/a[last()]
    starts-with()匹配一个属性值开始位置的关键字,用于模糊定位//div[starts-with(@id,“top”)]/a[last()]
    运算符 = != < > >= <= and or
    *通配符,匹配任意字符//div/* 选取div下的所有标签
    |显示存在的内容//input|//title
    []属性包围框,固定语法

    简单示例

    //span[@class='pl'][3]/following::text()[1]   表示   获取class='pl'的第三个span标签后的第1个文本内容
    //a[@class="toindex"][text()]                 表示   获取class='toIndex'的a标签的文本
    //div[@id='s-top-left']/child::a[1]           表示   获取id='s-top-left'的div标签下子标签的第1个a标签
    //div[@id='s-top-left']/descendant::a[1]      表示   获取id='s-top-left'的div标签后代中的第1个a标签
    //div[@id='s_top_wrap']/following::a[1]       表示   获取id='s_top_wrap'的div标签后的第1个a标签
    //div[@class='mnav s-top-more-btn']/preceding::a[7]   表示 获取class='mnav s-top-more-btn'的div标签之前的第7个a标签
    //a[contains(text(),'h')]/parent::*/a[position()=1]   表示 获取包含h的文本的a标签的父标签下索引值为1的a标签
    //a[contains(text(),'h')]/ancestor::*/a[position()<2] 表示 获取包含h的文本的a标签的先辈标签下索引值小于2的a标签
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 相关阅读:
    PC3392H高性价方案比10V-120V输入1.5A大电输出内置MOS管带EN功能实现零功耗使能只需极少元器件
    [GXYCTF2019]BabyUpload - 文件上传+绕过(后缀&文件类型&文件内容&.htaccess)
    【Java基础】IO流(二)
    小米6/6X/米8/米9手机刷入鸿蒙HarmonyOS.4.0系统-刷机包下载-遥遥领先
    Linux C select 的学习
    20行Python代码,轻轻松松获取各路书本,你还在花钱买着看嘛~
    flutter 文字拼接
    uniapp开发h5或小程序调用摄像头拍照,录屏
    Spring Cloud + Nacos 集成Netty Socket.IO
    视创云展「VR直播」是什么?有哪些功能和应用场景?
  • 原文地址:https://blog.csdn.net/u010361276/article/details/133807889