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