我在页面上有几个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>
答案 0 :(得分:2)
简明扼要的正确方法是:
(//h2)[position() > n]
或
(//h2)[position() > n and position() < last() - m]
将它们绑在两边。围绕//h2
的括号在这里产生了巨大的差异。
答案 1 :(得分:1)
这个问题对于精确回答并不具体,但您的想法是,您可以使用position()
过滤器获取除<h2>
小于{{1}之外的所有position
个元素}}
例如,假设n
为n
,您可以执行以下操作:
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]