XPath搜索多个嵌套元素

use*_*107 1 html xml xpath xml-parsing

我有以下HTML文档

<div class="books">
  <div class="book">
    <div>
      there are many deep nested elements here, somewhere there will be one span with  some text e.g. 'mybooktext' within these
      <div>
        <div>
          <div>
            <span>mybooktext</span>
          </div>
       </div>
     </div>
  </div>
<div>
 there are also many nested elements here, somewhere there will be a link with a class called 'mylinkclass' within these. (this is the element i want to find)
 <div>
   <div>
     <a class="mylinkclass">Bla</a>
   </div>
 </div>
</div>
</div>
<div class="book">
<div>
 there are many deep nested elements here, somewhere there will be one span with some     text e.g. 'mybooktext' within these
   <div>
     <span>mybooktext</span>
   </div>
 <div>
</div>
<div>
 there are also many nested elements here, somewhere there will be a link with a class called 'mylinkclass' within these. (this is the element i want to find)
 <div>
   <a class="mylinkclass">Bla</a>
 </div>
</div>
</div>
<div class="book">
same as above
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

我想在book元素中找到link元素(链接有名为'mylinkclass'的类),这将基于同一book元素中span的文本.

所以它会是这样的:

  1. - 使用文本'mybooktext'查找范围

  2. -Navigate up book div

  3. - 在book div中找到类'mylinkclass'的链接

这应该使用一个xpath语句完成

hr_*_*117 8

在我的几个,这是你正在寻找:

" //span[contains(text(),'mybooktext')]
            /ancestor::div[@class='book']
            //a[@class='mylinkclass']" 
Run Code Online (Sandbox Code Playgroud)

//span[contains(text(),'mybooktext')]查找包含"mybooktext"的san
/ancestor::div[@class='book']导航书籍div(在任何深层)
//a[@class='mylinkclass']查找书籍div中的类"mylinkclass"的链接(在任何深层)

更新:将第一个条件更改为
//span[(text() ='mybooktext']mybooktext是span中唯一的文本