XPath:如何选择节点集中的一系列节点?

时间:2014-03-06 03:10:07

标签: jquery xml xpath

我想在节点集中选择一系列节点。我试过了,但我无法得到结果。

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?

1 个答案:

答案 0 :(得分:4)

你的猜测是正确的。

  

[])的优先级(优先级)高于(///)。 [For Reference]

所以你需要在括号内的位置过滤器之前包装XPath,如下所示:

(//div/p[@class='p1'])[position()>=2 and position()<4]