XPath:如何在同一级别上选择与其他元素相关的元素

时间:2017-08-08 17:03:40

标签: xpath

问题很简单,但我没有足够的实践来处理这种情况:)

如果我们知道只需 item_promo 元素,如何从“阻止”中的每个div获取价格文本值。

<div class="block">
     <div class="item_promo">item</div>
     <div class="item_price">123</div>
</div>
<div class="block">
     <div class="item_promo">item</div>
     <div class="item_price">456</div>
</div>
<div class="block">
     <div class="item_promo">item</div>
     <div class="item_price">789</div>
</div>
<div class="block">
     <div class="item">item</div>
     <div class="item_price">222</div>
</div>
<div class="block">
     <div class="item">item</div>
     <div class="item_price">333</div>
</div>

2 个答案:

答案 0 :(得分:4)

您可以使用xpath:

//div[@class='block']/*[@class='item_promo']/following-sibling::div[@class='item_price']/text()

您查找属性为div且价值为class的{​​{1}}个元素,并查看其下一个具有属性item_promo的同级并抓取文本。

答案 1 :(得分:0)

这个XPath,

//div[div/@class='item_promo']/div[@class='item_price']

会返回item_pricedivitem_promo个元素,其中包含div<div class="item_price">123</div> <div class="item_price">456</div> <div class="item_price">789</div> built.bat个元素:

launch.json

无论标签/价格顺序如何,这都有效。