使用xpath表达式选择紧挨着放置的所有元素组

时间:2019-05-20 07:09:10

标签: html xpath

我有这个html

<div class="A"> A </div>
<div class="B"> 1 </div>
<div class="B"> 2 </div>
<div class="B"> 3 </div>
<div class="A"> A </div>
<div class="B"> 4 </div>
<div class="B"> 5 </div>
<div class="A"> A </div>
<div class="B"> 6 </div>

并且我想使用xpath表达式提取紧随class =“ A”的div元素之后的所有div元素。

我试图创建一个使用+运算符但未成功的表达式:

//div[@class='A']+div[@class='B']

我希望输出分成几组。例如,第一组应该是:

<div class="B"> 1 </div>
<div class="B"> 2 </div>
<div class="B"> 3 </div>

第二个

<div class="B"> 4 </div>
<div class="B"> 5 </div>

和最后一个

<div class="B"> 6 </div>

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

您必须:

  1. 获取元素的出现次数
  2. 对于每个索引i,评估xpath表达式

      

    // div [not(@ class =“ A”)和   count(preceding-sibling :: div [@ class =“ A”])=(i + 1)]