我有以下代码:
<div id="mydiv">
<h1>Some title</h1>
<p>don't select me</p>
<p>select me 1</p>
<p>select me 2</p>
<p>select me 3</p>
<p>don't select me</p>
</div>
我需要选择p [2]到p [4]。
尝试使用此代码并且无效:
'.//*[@id="mydiv"]/p[preceding-sibling::p[4] and following-sibling::p[2]]'
答案 0 :(得分:8)
您可以尝试:
'//*[@id='mydiv']/p[position()>1 and position()<5]'
或者,您的初始代码可以更改为:
'//*[@id="mydiv"]/p[preceding-sibling::p and following-sibling::p]'
左,选择具有前后p
个节点的所有p
(即p [2]到p [4])。
答案 1 :(得分:1)
XPATH也可以用以下格式编写: -
//p[position()>1 and position()<5]
或强>
//p[position()>=2 and position()<=4]
select me 1
select me 2
select me 3
答案 2 :(得分:0)
如果«p»的最大数量大于5,或许您需要使用此项
//p[(position() idiv 2) eq 1]
---选择ODD节点(基于位置编号)
//p[(position() idiv 2) eq 0]
---选择偶数节点(基于位置编号)