5

我有以下代码:

<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[4] 选择 p[2]。

尝试使用此代码,但没有成功:

'.//*[@id="mydiv"]/p[preceding-sibling::p[4] and following-sibling::p[2]]'
4

3 回答 3

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])。

于 2012-04-23T23:08:16.420 回答
1

XPATH 也可以写成以下格式:-

//p[position()>1 and position()<5]

或者

//p[position()>=2 and position()<=4]

结果:

select me 1
select me 2
select me 3
于 2012-07-03T13:05:53.073 回答
0

如果 «p» 的最大数量大于 5,您可能需要使用它:

//p[(position() idiv 2) eq 1]--- 选择奇数节点(根据位置编号)

//p[(position() idiv 2) eq 0]--- 选择偶数节点(基于位置编号)

于 2012-04-24T10:14:16.250 回答