我想在节点集中选择一系列节点。我试过了,但我无法得到结果。
example.xml :
<div>
<p class="p1">a</p>
<p class="p2">b</p>
<p class="p3">c</p>
</div>
<div>
<p class="p1">aa</p>
<p class="p2">bb</p>
<p class="p3">cc</p>
</div>
<div>
<p class="p1">aaa</p>
<p class="p2">bbb</p>
<p class="p3">ccc</p>
</div>
<div>
<p class="p1">aaaa</p>
<p class="p2">bbbb</p>
<p class="p3">cccc</p>
</div>
我想得到第二个到第三个p
个节点(有class="p1"
),我写了xpath:
"//div/p[@class='p1'][position()>=2 and position()<4]"
,但它失败了。我想如果每次"//div/p[@class='p1']"
获得一个节点,并且它的位置为0,那么我就无法获得一个位置&gt; = 2且位置&lt; 4的节点,所以结果是none。但我怎么写xpath?
答案 0 :(得分:4)
你的猜测是正确的。
(
[]
)的优先级(优先级)高于(//
和/
)。 [For Reference]
所以你需要在括号内的位置过滤器之前包装XPath,如下所示:
(//div/p[@class='p1'])[position()>=2 and position()<4]