XPath语法

本文详细介绍了XPath的基本概念及使用技巧,包括路径、节点选择、谓语条件、通配符、多路径查询及轴的选择等内容。通过本文的学习,读者可以更好地理解和运用XPath进行文档的数据抽取。

1. 路径

符号意义
/路径内部分割符
绝对路径/开头
相对路径节点名开头

2. 节点

符号意义
//选取所有的匹配节点
/选取根部的匹配节点
nodename选取此节点的所有子节点, 属于相对路径
.选取当前节点
..选取当前节点的父节点
@选取属性

3. 谓语条件(Predicate), 写在路径中

符号意义
[i]第i个元素, 从1开始
last()最后一个
last()-2倒数第二个
@lang有属性名为lang的节点
@lang='en'有属性名为lang, 值为en的节点
position() < n取n条元素
node1[node2]必须含有node2元素的node1元素
node1[node2>20]必须含有node2元素且node2元素值必须大于20的node1元素

4. 通配符

符号意义
*匹配任何元素节点
@*匹配任何属性节点
node()匹配任何节点

5. 多路径

多个路径使用|分割

6. 轴(Axes)

符号意义
ancestor选取当前节点的所有先辈(父、祖父等)
ancestor-or-self选取当前节点的所有先辈(父、祖父等)以及当前节点本身
attribute选取当前节点的所有属性
child选取当前节点的所有子元素
descendant选取当前节点的所有后代元素(子、孙等)
descendant-or-self选取当前节点的所有后代元素(子、孙等)以及当前节点本身
following选取文档中当前节点的结束标签之后的所有节点
namespace选取当前节点的所有命名空间节点
parent选取当前节点的父节点
preceding选取文档中当前节点的开始标签之前的所有节点
preceding-sibling选取当前节点之前的所有同级节点
self选取当前节点
following选取文档中当前节点的结束标签之后的所有节点

示例

符号意义
child::book选取所有属于当前节点的子元素的 book 节点
attribute::lang选取当前节点的 lang 属性
child::*选取当前节点的所有子元素
attribute::*选取当前节点的所有属性
child::text()选取当前节点的所有文本子节点
child::node()选取当前节点的所有子节点
descendant::book选取当前节点的所有 book 后代
ancestor::book选择当前节点的所有 book 先辈
ancestor-or-self::book选取当前节点的所有 book 先辈以及当前节点(如果此节
child::*/child::price选取当前节点的所有 price 孙节点

转载于:https://www.cnblogs.com/vmask/p/8941040.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值