如何使用XPath获取指定span后无标签包裹的efg值,已可提取span内abc文本
XPath提取无标签文本方案
对应HTML结构参考
你给出的代码对应的实际渲染结构如下:
<p> <span class="uniqueid">abc</span>"efg" </p>
可用XPath表达式
直接提取efg所属的无标签文本,使用以下语句即可://span[@class="uniqueid"]/following-sibling::text()[1]
语法说明
- 基础定位部分
//span[@class="uniqueid"]沿用你已经验证过的定位逻辑,先锁定目标span节点 following-sibling::是XPath的轴语法,作用是选中当前节点之后的所有同级节点text()[1]表示选中所有同级节点里的第一个文本节点,就是你要的未被标签包裹的efg内容
扩展用法
如果需要直接去除文本前后自带的双引号,可搭配字符串处理函数实现:substring(//span[@class="uniqueid"]/following-sibling::text()[1], 2, string-length(//span[@class="uniqueid"]/following-sibling::text()[1]) - 2)
如果span后存在多个同级文本节点,也可通过内容匹配精准定位://span[@class="uniqueid"]/following-sibling::text()[contains(., "efg")]
内容的提问来源于stack exchange,提问作者Sriram Chowdary
相关产品推荐
相关产品推荐

