网站首页 > 技术文章 正文
一、介绍
XPath(XML Path Language)是一种用于在 XML 文档中定位节点的查询语言。它提供了一种简洁而强大的方式来遍历和选择 XML 文档中的元素和属性
二、语法
表达式 | 描述 | 示例 |
nodename | 选择指定标签名的节点 | html 将选择所有名为html 的节点。 |
* | 选择所有节点 | * 选择文档中的所有节点 |
/nodename | 从根节点开始选择,只能一层一层的往下找 | /html/body/div将选择文档中的所有div 节点 |
//tagname | 选择任意位置的节点 | //div将选择文档中的所有div 节点 |
@ | 选择具有指定属性名和属性值的节点,或者获取属性 | //div[@id="billboard"]//a/@href,[@id="billboard"]获取id=billboard的div,@href获取href属性 |
. | 选取当前节点 | .//div[@id="billboard"] |
.. | 选取当前节点的父节点 | ..//div[@id="billboard"] |
三、谓语
表达式 | 描述 | 示例 |
[condition] | 添加条件来筛选节点 | //div[@id="billboard"]获取id=billboard的div |
position() | 选择具有指定位置的节点 | //div[@id="billboard"]//tr[position()=1]获取第一个tr,等同于 //div[@id="billboard"]//tr[1] |
last() | 选择最后一个节点 | //div[@id="billboard"]//tr[last()] 获取最后一个tr |
四、运算符
表达式 | 描述 | 示例 |
| | 计算两个节点集 | //book | //cd,返回所有拥有 book 和 cd 元素的节点集 |
+ | 加 | 8 + 4 |
- | 减 | 8 - 4 |
* | 乘 | 8 * 4 |
div | 除 | 8 div 4 |
> | 大于 | //div[@id="billboard"]//tr[position()>1]获取位置大于2的tr |
< | 小于 | //div[@id="billboard"]//tr[position()<2]获取位置小于2的tr |
= | 等于 | //div[@id="billboard"]//tr[position()=1]获取第一个tr,等同于 //div[@id="billboard"]//tr[1] |
!= | 非等于 | //div[@id="billboard"]//tr[position()=1]获取位置非等于1的元素 |
>= | 大于等于 | //div[@id="billboard"]//tr[position()>=2]获取位置大于等于2的tr |
<= | 小于等于 | //div[@id="billboard"]//tr[position()<=2]获取位置小于等于2的tr |
and | 与 | //div[@id="billboard"]//tr[@class='test' and position()>2] 获取class为test且位置大于2的tr |
or | 或 | //div[@id="billboard"]//tr[position()=1 or position()=2]获取位置等于1和等于2的tr |
not | 非 | //div[@id="billboard"]//tr[not(position()=1)]获取位置非1的的tr |
五、轴(Axis)
表达式 | 描述 |
ancestor | 选取当前节点的所有先辈(父、祖父等)。 |
ancestor-or-self | 选取当前节点的所有先辈(父、祖父等)以及当前节点本身。 |
attribute | 选取当前节点的所有属性。 |
child | 选取当前节点的所有子元素。 |
descendant | 选取当前节点的所有后代元素(子、孙等)。 |
descendant-or-self | 选取当前节点的所有后代元素(子、孙等)以及当前节点本身。 |
following | 选取文档中当前节点的结束标签之后的所有节点。 |
following-sibling | 选取当前节点之后的所有兄弟节点 |
namespace | 选取当前节点的所有命名空间节点。 |
parent | 选取当前节点的父节点。 |
preceding | 选取文档中当前节点的开始标签之前的所有节点。 |
preceding-sibling | 选取当前节点之前的所有同级节点。 |
self | 选取当前节点。 |
六、常用函数
更多函数请参考:https://www.runoob.com/xpath/xpath-functions.html
表达式 | 描述 | 示例 |
position() | 选择具有指定位置的节点 | //div[@id="billboard"]//tr[position()=1]获取第一个tr,等同于 //div[@id="billboard"]//tr[1] |
last() | 选择最后一个节点 | //div[@id="billboard"]//tr[last()] 获取最后一个tr |
text() | 获取节点的文本内容 | //div[@id="billboard"]//a/text() 获取div[@id="billboard"]下所有a标签中的文本 |
contains(@attr,?'value')???? | 模糊匹配 | //div[@id="billboard"]//a[contains(@href, '35698284')] 选择href中包含35698284的a标签 |
starts-with(@attr,?'value')? | 是否以指定字符开头 | //div[@id="billboard"]//a[starts-with(@href, 'https')] 选择href以https开头的a标签 |
ends-with(@attr,?'value') | 是否以指定字符结尾 | //div[@id="billboard"]//a[ends-with(@href, '35698284')] 选择href以35698284结尾的a标签 |
猜你喜欢
- 2024-10-25 《王牌部队》高粱拿了“喜剧人”剧本,笑点泪点都被他承包了
- 2024-10-25 纯爱小说推荐|生活所迫,我只能把你的后宫变成我的兄弟了
- 2024-10-25 占星秒懂|宫位的形成与解析(下) 宫位意思
- 2024-10-25 农村兄弟建双拼更有气势还省钱,2020年超受欢迎的双拼户型分享
- 2024-10-25 我爸说,“你没有结婚,我在村子里比做贼还丢人!”
- 2024-10-25 「漫步计算机系统」之数据结构与算法(18):红黑树结点的删除
- 2024-10-25 IT兄弟连 HTML5教程 CSS3揭秘 CSS3概述
- 2024-10-25 通过css类/选择器选取元素 文档结构和遍历 元素树的文档
- 2024-10-25 琅琊榜:兄弟之情,远比男女之情更加动人
- 2024-10-25 参加兄弟婚礼祝福语 参加兄弟婚礼祝福语简短
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)