首页 > 解决方案 > 使用 XPath 匹配除一个之外的所有元素和文本

问题描述

<div class="main">
  <div class="column-items">
    <div>
      abcd
    </div>
    <h2>Thomas</h2>
    <p>Ron</p>
  </div>
  <p>Dave</p>
  Sample text here......
  <b>Andrew</b>
  El murciélago de Bacardí tiene su!!
  <p>abcdef</p>
</div>

在上面的结构中,我希望 XPath 获取包括文本在内的所有内容,<div class="main">除了我不想要第一个 div 元素的内容,即<div class="column-items">.

标签: htmlxmldomxpathweb-scraping

解决方案


如果您想要 'main' div 中的所有文本节点,不包括 'column-items' div 中的文本节点,请尝试:

//div[@class='main']//text()[not(ancestor::div[@class="column-items"])]

推荐阅读