我有以下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>
我想在 book 元素中找到链接元素(链接具有名为“mylinkclass”的类),这将基于同一 book 元素中跨度的文本。
所以它会是这样的:
-查找带有文本“mybooktext”的跨度
-向上导航 Book div
-在 book div 中查找类 'mylinkclass' 的链接
这应该使用一个 xpath 语句来完成
最佳答案
在我的几个中,这是您正在寻找的:
" //span[contains(text(),'mybooktext')]
/ancestor::div[@class='book']
//a[@class='mylinkclass']"
//span[contains(text(),'mybooktext')]
查找包含“mybooktext”的san
/ancestor::div[@class='book']
向上导航 Book div(在任何深处)
//a[@class='mylinkclass']
在 book div 中查找类 'mylinkclass' 的链接(在任何深处)
更新:
将第一个条件更改为
//span[(text() ='mybooktext']
如果 mybooktext 是 span 中唯一的文本
关于html - XPath 搜索多个嵌套元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16469563/