六、 / 和 // 的区别: / 代表只获取直接子节点; // 代表获取子孙节点,一般 // 用的多
七、Xpath语法:分为四个部分
1、选取节点 :就是用什么样的方法去选取节点
表达式 作用 用法 用法说明
(1) nodename 节点名 //div 这个div就是nodename,节点名
----------------------------------------------------------------------------------------
(2) / 有两个作用:如果在最前面代表 /html 只在整个HTML文档中查找根节
只在根节点查找。否则代表直接子元素 点下的 html 元素
----------------------------------------------------------------------------------------
(3) // 从全局节点中选择节点,随便在哪个位置 //div 在整个HTML文档查找所有的div元素
----------------------------------------------------------------------------------------
(4) @ 选取某个节点的属性 //div[@id] 选择所有拥有id属性的div元素
----------------------------------------------------------------------------------------
如果出现格式问题,请移步到PC端观看
2、谓语(wei zi) :通过谓语可以在查找节点的同时添加筛选条件,就是中括号中的东西
用法:
(1) 只获取body下的 "第1个" div 元素 -- //body/div[1]
(2) 获取body下的 "最后一个" div元素 -- //body/div[last()]
(3) 只获取 "前两个" div元素 -- //body/div[position()<3]
(4) 只获取拥有class="s_position_list"属性的div元素 -- //div[@class="s_position_list"]
(5) contains 模糊匹配方法:当一个元素有多个属性时使用,例如:一个div元素同时有class
和fl属性 //div[contains(@class, "fl")]
3、通配符 :就是 * ,代表的是任意字符,任意节点,任意属性等
用法:
(1) * 意思是匹配任意字符 : 要求:获取body下的所有元素 -- 语法://body/*
(2) @* 意思是获取所有属性 : 要求:只要拥有属性的div都提取出来 -- 语法://div[@*]
4、选取多个路径:通过 | 运算符,可以同时选取若干个路径
要求1:获取 属性为 class="job_bt" 或 class="job_adv" 的 div 元素
语法: //dd[@class="job_bt"] | //dd[@class="job_adv"]
要求2:获取 class="job_detail" 并且 id="job_detail" 属性的 dl 元素
语法://dl[@class="job_detail" and @id="job_detail"]
【纯个人手打,替老师传道,不求多大成就但愿 能帮到大家,在闲暇的时间里为大家共享一些工作经验和各种技术资源文章,希望帮助大家共同进步 也希望我的发布对你有所帮助,我的发布里有更多类似的文章可以查阅,喜欢的请点关注,谢谢。你们的关注是我不停发布的最大动力在我发布里好多类似这样的文章,请尽情阅览】