Xpath使用教程

什么是XPath?

xpath(XML Path Language)是一门在XML和HTMl文档中查找信息的语言,可用来在XML和HTML文档中对元素和属性进行遍历.

XPath开发工具

  1. Chrome插件XPath Helper.
  2. Firefox插件XPath Checker和Try XPath

XPath语法

使用方式

使用//获取整个界面当中的元素,然后写签名,然后再写谓词进行提取。比如

//div[@class='abc']

需要注意的知识点

  1. /// 的区别:
    • /代表只获取直接子节点。
    • //获取子孙节点。一般//用得比较多。当然也要视情况而定。
  2. contains: 有时候某个属性中包含了多个值,那么可以使用contains函数。实例代码如下
    //div[contains(@class, 'job_detail')]
    
  3. 谓语中的下标是从1开始的,不是从0开始

选取节点

XPath使用路径表达式来选取XML文档中的节点或者节点集.这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似.

表达式描述示例结果
nodename选取此节点的所有子节点bookstore选取bookstore下所有的子节点
/如果在最前面,代表从根节点选取.否则选择某节点下的某个子节点/bookstore选取根元素下所有的bookstore节点
//从全局节点中选择节点,随便在哪个位置//book从全局节点中找到所有的book节点
@选取某个节点的属性//book[@class]选择所有book中拥有class属性的节点

谓语

谓语用来查找某个特定的节点或者包含某个指定的值的节点,被嵌在方括号中.
在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达的结果

路径表达式描述
/bookstore/book[1]选取bookstore下的第一个子元素
/bookstore/book[last()]选取bookstore下的最后一个book元素
/bookstore/book[position()<3]选取bookstore下前面两个子元素
/book[@price]选取拥有price属性的book元素
/book[@price=10]选取所有属性price等于10的book元素
/book[contains(@class, ‘fl’)]模糊匹配class属性中有fl值的元素
/book[start-with(@class, ‘fl’)]匹配class属性中以fl开头的元素
/book[ends-with(@class, ‘fl’)]匹配class属性中以fl结尾的元素

通配符

*表示通配符.

通配符描述示例结果
*匹配任意节点/bookstore/*选取bookstore下的所有子元素.
@*匹配节点中的任意属性//book[@*]选取所有带属性的book元素.

选取多个路径

通过在路径表达式中使用"|"运算符,可以选择若干路径

//bookstore/book | //book/title
# 选取所有book元素以及book元素下所有的title元素

运算符

运算符描述示例返回值
|计算两个节点集//book | //cd返回所拥有book和cd元素的节点集
+加法6 + 410
-减法6 - 42
*乘法6 * 424
div除法8 div 42
=等于price=9.80如果price是9.80,则返回true.如果price是9.90,则返回false
!=不等于price != 9.80如果price是9.90,则返回true.如果price是9.80,则返回false
<小于price < 9.80如果price是9.00,则返回true.如果price是9.90,则返回false
<=小于等于price <= 9.80如果price是9.00,则返回true.如果price是9.90,则返回false
>大于price > 9.80如果price是9.90,则返回true.如果price是9.00,则返回false
>=大于等于price >= 9.80如果price是9.90,则返回true.如果price是9.00,则返回false
or或者price = 9.80 or price = 9.70如果price是9.80,则返回true.如果price是9.50,则返回false
and与,并且price > 9 and price < 9.90如果price是9.80,则返回true.如果price是8.50,则返回false
mod计算除法的余数5 mod 21
  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值