xpath 简单使用

08.24

Xpath 常用部分 https://www.cnblogs.com/yinjiangchong/p/9440014.html

p0

pic1

在这里插入图片描述

09.01

搬运整理:https://www.qingheluo.com/xpathyufa/

语法:使用路径表达式来选取XML文档中的节点或者节点集

.
..
*
@
text()
/:如果在最前面,代表从根节点选取,否则选择某节点之下的某个子节点
/ul:选取根节点子节点中所有 ul 节点
/ul/li:选取根节点子节点中所有 ul 节点子节点中的 li 节点
//:从全局节点中选择节点
//ul:选取所有的 ul 节点而不管它的位置
//div//li:选取所有 div 节点下所有 li 节点而不管它的位置 ⭐ /div/div/div/li/
//form//@name:选取所有 form 节点下所有的 name 属性值
text():获取节点中的文本
//li/text():获取 li 节点下所有子节点的内容
//div/*:匹配 div 元素的所有子节点
//h1[@*]:匹配所有带属性的 h1 元素

谓语:用来查找某个特定节点或包含某个指定的值的节点,被镶嵌在方括号中

[n]:用来选择第 n 个节点,n 从 1 开始
//ul/li[3]:表示获取所有 ul 标签下的第 3 个 li 标签的内容
[last()]:选取最后一个节点
[last()-1]:选取倒数第 2 个节点
[@price]:选取拥有 price 属性的节点
[@price='value']:选取 price 属性等于 value 的节点
[price>3.14]:选取所有 price 属性的值大于 3.14 的节点

XPath轴(Axes):选取相对于当前节点的节点集

使用语法:轴名称::nodename
//p[@class='style1']/parent::div 选取所有 class 属性等于 style1 的 p 节点的 div 父节点
//p[@class='style1']/parent::* 选取所有 class 属性等于 style1 的 p 节点的所有父节点
ancestor:选取当前节点的所有先辈(父、祖父等)。
ancestor-or-self:选取当前节点的所有先辈(父、祖父等)以及当前节点本身。
attribute:选取当前节点的所有属性。
child:选取当前节点的所有子元素。
descendant:选取当前节点的所有后代元素(子、孙等)。
descendant-or-self:选取当前节点的所有后代元素(子、孙等)以及当前节点本身。
following:选取文档中当前节点的结束标签之后的所有节点。
following-sibling:选取当前节点之后的所有兄弟节点
namespace:选取当前节点的所有命名空间节点。
parent:选取当前节点的父节点。
preceding:选取文档中当前节点的开始标签之前的所有节点。
preceding-sibling:选取当前节点之前的所有同级节点。
self:选取当前节点

常用函数

concat(str1, str2,...):拼接字符串
str-join((str1, str2,...), sep=''):使用 sep 参数的值作为分隔符拼接字符串
substring(str, start, len):返回 str 字符串从 start 位置开始指定长度 len 的子字符串(不提供 len 参数返回到字符串末尾),下标从 1 开始
str-length(str):返回字符串的长度,不提供 str 参数返回当前节点的字符串长度
normalize-space(str):删除 str 开头和结尾的空格,并把内部所有的连续空格替换为一个,不提供 str 参数处理当前节点
upper-case(str):把 str 转换为大写
lower-case(str):把 str 转换为小写
translate(str1, str2, str3):把 str1 中的 str2 替换为 str3
contains(str1, str2):str1 包含 str2 返回 true,否则返回 false
//div[contains($class, 'to')] 获取所有 class 属性中包含 ‘to’ 的 div
starts-with(str1, str2):str1 以 str2 开始返回 true,否则返回 false
ends-with(str1, str2):str1 以 str2 结尾返回 true,否则返回 false
substring-before(str1, str2):返回 str2 在 str1 中出现之前的子字符串
substring-after(str1, str2):返回 str2 在 str1 中出现之后的子字符串
matches(str, pattern):如果 str 匹配指定的模式返回 true,否则返回 false
replace(str, pattern, replace):把指定的模式替换为 replace 参数,并返回结果
tokenize(str, pattern):用指定的模式分割 st r并返回分割后的列表

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值