首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从Xpath查询中排除元素?

如何从Xpath查询中排除元素?
EN

Stack Overflow用户
提问于 2018-01-07 13:19:06
回答 1查看 415关注 0票数 1

我试图选择成分清单中的成分,但也有工具提示散落在其中(在BBC好食品网站)。

作为一个精简的例子:

代码语言:javascript
运行
复制
<li class="ingredients-list__item" itemprop="ingredients">
  400g
  <a href="/glossary/new-potatoes" class="ingredients-list__glossary-link tooltip-processed">
    new potato
    <div id="gf-tooltip-0" class="gf-tooltip" role="tooltip">
      <div class="gf-tooltip__content">
        <div class="gf-tooltip__text">
          <p>unwanted tooltip</p>
        </div>
      </div>
    </div>
  </a>, halved if large
  <span class="ingredients-list__glossary-element" id="ingredients-glossary"></span>
</li>

我正试着用'400g new potato, halved if large'来结束,或者同样好,['400g', 'new potato', ', halved if large']

在我尝试过的其他事情中:

代码语言:javascript
运行
复制
s.xpath("//li[@class='ingredients-list__item'][not(div[@class='gf-tooltip'])]//text()").extract()

但是它仍然返回工具提示div中的文本。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-07 13:38:35

一种可能的方法是排除文本节点,其中任何一个祖先都是工具提示div (为了提高可读性,将其分成2行):

代码语言:javascript
运行
复制
//li[@class='ingredients-list__item']
  //text()[not(ancestor::div[@class='gf-tooltip'])]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48137481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档