如何使用XPATH的substring-before/after提取两个h4标签间的内容
正确XPath写法
直接返回带换行的原始内容,推荐使用更严谨的父节点限定写法,避免其他区域内容干扰:
substring-before(substring-after(//h4[text()='Start here']/parent::*, 'Start here'), 'Stop here')
如果需要自动去除首尾多余空白、合并多余换行,可使用normalize-space包裹:
normalize-space(substring-before(substring-after(//h4[text()='Start here']/parent::*, 'Start here'), 'Stop here'))
原有写法错误说明
contains函数语法错误:contains()要求传入两个参数,格式为contains(待匹配内容, 搜索关键词),你编写的contains, 'Start here'不符合语法规范- 切割逻辑错误:
substring-before、substring-after的第一个参数为待切割的完整字符串,第二个参数为分界标记,你之前直接将h4节点选择器作为第二个参数传入,逻辑不成立
如果你的HTML中h4文本前后存在空白字符,可将text()='Start here'替换为normalize-space(text())='Start here'兼容场景。
内容的提问来源于stack exchange,提问作者Rich Stevens
相关产品推荐
相关产品推荐

