xpath来查找前面的元素
有这样一种结构:xpath来查找前面的元素,xpath,Xpath,有这样一种结构: <div "nothing unique there"> <img "repeating parameters"> <span> repeating text </span> <span> <span> <img class="unique name"> </span> <span> <strong&g
<div "nothing unique there">
<img "repeating parameters">
<span>
repeating text
</span>
<span>
<span>
<img class="unique name">
</span>
<span>
<strong>Tools</strong>
</span>
</span>
.
.
不是您找到的img
元素的前兄弟,而是它的父元素
。只使用previous::img
而不是previous sibling::img
IMHO,如果您想选择一个img
,那么这应该是XPath的主要部分。那么,让我们从
//img
现在,让我们为img
添加条件。似乎有span
以下内容,因此让我们将其作为一个条件添加:
//img[following-sibling::span]
现在,这不可能是任何span
。它需要包含另一个img
//img[following-sibling::span//img]
同样地,img
不仅仅是任何img
,它还有一些特殊的属性。让我们将它们作为条件添加到内部img
:
//img[following-sibling::span//img[@class="unique name"]]
好了。我是一个很好理解的XPath
当然,也可以像您所做的那样先转到唯一的
img
//span/img[@class="unique name"]
然后,别忘了走出去:
//span/img[@class="unique name"]/../..
之后,您可以移动到前面的同级:
//span/img[@class="unique name"]/../../preceding-sibling::img
谢谢!对于我这个XPath初学者来说,这是一个很好的解释,完全有道理,当然了works@AlexanderSh字体我很高兴它能工作。如果其中一个答案解决了您的问题,请单击向上/投票/向下按钮下方的复选标记。这会告诉别人你的问题已经解决了。
//span/img[@class="unique name"]/../../preceding-sibling::img