如何根据 XPath 中嵌套同级的值选择元素?

2024-04-17

在包含大量DIV的文档中,我想选择DIV内的文本asset-body元素,但前提是bookmark里面的链接asset-name entry-title该“条目”包含文本democrat in the href value.

因此,在下面的示例中,包含两个“条目”(entry-1 and entry-2),我只想要这样的文字Jackpot!因为的值bookmark该“条目”中的链接包含子字符串democrat:

http://blahblah.com/politics-democrat

是否可以使用 XPath 来做到这一点?

条目 1:(FAIL: bookmark该条目中的链接缺少子串democrat)

<div id="entry-1" class="item-asset asset hentry">
  <div class="asset-header">
    <h2 class="asset-name entry-title">
      <a rel="bookmark" href="http://blahblah.com/paper-scissors">Paper Scissors</a>
    </h2>
  </div>
  <div class="asset-content entry-content">
    <div class="asset-body">
     <p>Paper and scissors</p>
    </div>
  </div>
</div>

条目 2:(PASS: bookmark该条目中的链接包含子字符串democrat)

<div id="entry-2" class="item-asset asset hentry">
  <div class="asset-header">
    <h2 class="asset-name entry-title">
      <a rel="bookmark" href="http://blahblah.com/politics-democrat">Pelosi Q&amp;A</a>
    </h2>
  </div>
  <div class="asset-content entry-content">
    <div class="asset-body">
     <p>Jackpot!</p>
    </div>
  </div>
</div>

//div[contains(
            div/h2[
              contains(concat(' ',@class,' '),' asset-name ')
              and
              contains(concat(' ',@class,' '),' entry-title ')
            ]/a[@rel='bookmark']/@href
         ,'democrat')
        ]/div/div[
           contains(concat(' ',@class,' '),' asset-body ')
           ]//text()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据 XPath 中嵌套同级的值选择元素? 的相关文章

随机推荐