悠悠楠杉
深入解析XPath的substring()函数:精准提取子字符串的实战技巧
深入解析XPath的substring()函数:精准提取子字符串的实战技巧
在网页抓取和XML数据处理中,XPath的substring()
函数是处理字符串的瑞士军刀。本文将通过实际案例,带你掌握这个核心函数的各种用法。
一、substring()函数基础语法
substring()
函数的标准格式为:
xpath
substring(源字符串, 起始位置[, 截取长度])
关键参数说明:
- 起始位置:从1开始计数(非程序员习惯的0开始)
- 截取长度:可选参数,不指定时默认截取到末尾
二、典型应用场景演示
场景1:提取固定位置的文本
xpath
//div[contains(@class,'price')]/substring(text(), 2, 5)
此表达式会提取class包含"price"的div标签文本中,从第2个字符开始的5个字符。比如文本"¥128.99"将返回"128.9"
场景2:动态截取文件名
处理文件路径时特别实用:
xpath
substring-after(substring-before(/file/@path, '.ext'), '/')
这个嵌套表达式先提取.ext前的字符串,再截取最后一个斜杠后的内容,完美获取纯文件名。
三、高级技巧与避坑指南
位置参数陷阱:当起始位置超过字符串长度时,返回空字符串而非报错
xpath substring("abc", 5) ➔ ""
负数处理妙用:某些XPath 2.0+版本支持从末尾倒数
xpath substring("2023-12-31", -5) ➔ "12-31"
配合正则的混合方案:复杂场景建议结合
matches()
函数
xpath //*[matches(text(),'\d{4}')]/substring(text(), 1, 4)
四、实战:电商价格提取案例
假设需要抓取以下价格元素:
html
<span class="special-price">限时价: ¥368.00</span>