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

如何通过XPath提取HTML面包屑中的‘Love & Romance’文本

如何从面包屑HTML中提取"Love & Romance"的XPath方案

嘿,我来帮你搞定这个XPath提取的问题!先看看你提供的HTML结构:

<div class="m-breadcrumbs no-mobile"> 
  <a href="/home" class="breadcrumbs-link">Home</a>
  <span class="delimiter_breadcrumb_spacer">&gt;</span> 
  <a href="/occasions/cat1000008">Occasions</a>
  <span class="delimiter_breadcrumb_spacer">&gt;</span> 
  Love &amp; Romance 
</div>

你之前尝试的XPath (//span[@class='delimiter_breadcrumb_spacer']/text()[last()])[2] 之所以没得到想要的结果,是因为这些span节点的文本内容都是>,而目标的“Love & Romance”是属于父div的直接文本节点,并不是span的子节点。

给你几个靠谱的XPath方案,任选其一就行:

  • 方案一:直接定位div的最后一个文本节点
    目标文本是div下的最后一个文本节点,直接提取后用normalize-space()清理掉多余的空白:

    normalize-space(//div[@class='m-breadcrumbs no-mobile']/text()[last()])
    

    思路:先找到对应的面包屑容器div,然后取它的最后一个文本子节点,normalize-space()会自动去除前后的空格和换行,得到干净的“Love & Romance”。

  • 方案二:通过第二个分隔符span找兄弟文本
    先定位到第二个分隔符span,再取它后面紧邻的兄弟文本节点:

    normalize-space(//span[@class='delimiter_breadcrumb_spacer'][2]/following-sibling::text()[1])
    

    思路:利用兄弟节点关系,找到第二个>分隔符,它后面的文本就是我们要的内容,同样用normalize-space()处理空白。

  • 方案三:过滤空白文本后取最后一个有效节点
    如果担心div里有其他空白文本节点,可以先过滤掉无内容的文本,再取最后一个:

    normalize-space(//div[@class='m-breadcrumbs no-mobile']/text()[normalize-space()][last()])
    

    思路:text()[normalize-space()]会筛选出所有非空白的文本节点,再取最后一个就是目标内容。

这几个方案都能准确提取到你想要的“Love & Romance”,你可以根据自己的实际场景选择最合适的~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:54:17