有这样的结构:
<div "nothing unique there">
<img "repeating parameters">
<span>
repeating text
</span>
<span>
<span>
<img class="unique name">
</span>
<span>
<strong>Tools</strong>
</span>
</span>
.
.
我需要使用XPath查找<img "repeating parameters">
上面的代码中唯一唯一的部分是<img class="unique name">
我尝试了一下,但是没用:
//span/img[@class="unique name"]/preceding-sibling::img
答案 0 :(得分:1)
恕我直言,如果您想选择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
答案 1 :(得分:0)
<img "repeating parameters">
不是您发现的img
元素的前一个同级,而是它的祖父母<span>
的同级元素。仅使用preceding::img
而不是preceding-sibling::img
。