Xpath:使用深度未知的锚后代选择div

时间:2015-08-05 01:37:33

标签: html xpath

示例html:

<div>
  <div class="foo bar baz">                          <-- target 1 -->
    <div>
      <span>
        <a href="helloworld.com">hello world</a>
      </span>
    </div>
  </div>
  <div class="foo bar">foo</div>
  <div class="bar">                                  <-- target 2 -->
    <div>
      <div>
        <span>
          <a href="helloworld2.com">hello world</a>
        </span>
      </div>
    </div>
  </div>
</div>

我想选择:div:1)具有类名bar 2)有一个<a>后代,href包含hello。< / p>

我的问题是<a>标记可以嵌套在不同的级别中。如何正确处理?

1 个答案:

答案 0 :(得分:1)

您可以使用相对后代或自我轴(.//)来检查各种可能级别深度的<a>元素:

//div[contains(concat(' ', @class, ' '), ' bar ')][.//a[contains(@href,'hello')]]

相关讨论:How can I find an element by CSS class with XPath?