我想在节点集中选择一系列节点。我试过了,但我得不到结果。
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']"
得到一个节点,它的position为0,所以我得不到position>=2和position<4的节点,所以结果是没有。但是xpath怎么写呢?
最佳答案
你猜对了。
The (
[]
) has a higher precedence (priority) than (//
and/
). [For Reference]
因此您需要在位置过滤器之前将 XPath 包装在方括号内,如下所示:
(//div/p[@class='p1'])[position()>=2 and position()<4]
关于jquery - XPath:如何在节点集中选择一定范围的节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22214071/