Xpath从第n个开始返回所有h2节点

时间:2014-04-09 08:32:32

标签: xpath

我在页面上有几个h2元素,xpath结果应该是h2元素的数组,排除前n个h2元素。

<div>
    <h2>1</h2>
    <h2>2</h2>
    <h2>3</h2>
</div>
....
<div>
    <h2>4</h2>
    <h2>5</h2>
    ...
    <h2>n<h2>
</div>

4 个答案:

答案 0 :(得分:2)

简明扼要的正确方法是:

(//h2)[position() > n]

(//h2)[position() > n and position() < last() - m]

将它们绑在两边。围绕//h2的括号在这里产生了巨大的差异。

答案 1 :(得分:1)

这个问题对于精确回答并不具体,但您的想法是,您可以使用position()过滤器获取除<h2>小于{{1}之外的所有position个元素}}

例如,假设nn,您可以执行以下操作:

1

鉴于这种简单的结构化XML输入:

//h2[position()>1]

上面的XPath将返回这些元素:

<root>
    <h2>1</h2>
    <h2>2</h2>
    <h2>3</h2>
</root>

答案 2 :(得分:0)

//h2[position() > n]

当然用你想要的任何实际值替换n ......

答案 3 :(得分:0)

找到正确答案,对我有用:

//descendant::h2[position()>n

如果我想在第n个元素之后获取m个元素,那么

//descendant::h2[position()>n and position()<last()-m]