【问题标题】:XPath: How to select a range of nodes in the node set?XPath:如何在节点集中选择一系列节点?
【发布时间】:2014-04-08 11:22:50
【问题描述】:

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

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>

我想得到第二个到第三个pnodes(有class="p1"),我写了xpath:
"//div/p[@class='p1'][position()&gt;=2 and position()&lt;4]",但是失败了。我猜如果每次"//div/p[@class='p1']"得到一个节点,它的位置是0,所以我不能得到一个位置> = 2和位置

【问题讨论】:

    标签: jquery xml xpath


    【解决方案1】:

    你的猜测是正确的。

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

    因此,您需要在括号内的位置过滤器之前将 XPath 包裹起来,如下所示:

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

    【讨论】:

      猜你喜欢
      • 2018-07-15
      • 1970-01-01
      • 2020-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多