You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用XPath选取两个标签之间的全部文本?

如何用XPath选取两个标签之间的全部文本

嘿,我来帮你搞定这个问题!先看看你的HTML结构,要选的是<a name="dst100030"></a>和<a name="dst100031"></a>之间的所有文本内容对吧?下面给你几个实用的XPath方案:

方案1:选取两个标签之间的所有节点(可提取文本)

这个表达式能精准定位到两个目标<a>标签之间的所有兄弟节点:

//a[@name='dst100030']/following-sibling::node()[following-sibling::a[@name='dst100031']]
  • 拆解一下:
    • //a[@name='dst100030']:先定位到第一个目标<a>标签
    • following-sibling::node():选取该标签之后的所有兄弟节点
    • [following-sibling::a[@name='dst100031']]:过滤出那些后面还存在第二个目标<a>标签的节点——也就是刚好在两个<a>之间的内容

方案2:直接获取合并后的文本内容

如果不需要节点结构,只想拿到合并后的纯文本,用string()函数包裹上面的路径就行:

string(//a[@name='dst100030']/following-sibling::node()[following-sibling::a[@name='dst100031']])

执行后会得到:

│Лабораторные методы исследования │
├────────────┬───────────────────────────┬─────────────────┬──────────────┤

方案3:精准定位到中间的<pre>标签文本

因为你的中间内容都在<pre>标签里,也可以直接定位这些标签来提取文本:

//a[@name='dst100030']/following-sibling::pre[following-sibling::a[@name='dst100031']]/span/text()

这个表达式会直接返回两个<span>标签里的文本内容,适合只需要具体文本片段的场景。

要是你用的是Chrome开发者工具、Python的lxml库或者其他支持XPath的工具,直接把这些表达式输进去就能拿到想要的内容啦!

内容的提问来源于stack exchange,提问作者JBJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:01:40