XPATH - 选择节点范围

Rhy*_*Guy 5 php xpath

我有以下代码:

<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>
Run Code Online (Sandbox Code Playgroud)

我需要选择p [2]到p [4].

尝试使用此代码,它不起作用:

'.//*[@id="mydiv"]/p[preceding-sibling::p[4] and following-sibling::p[2]]'
Run Code Online (Sandbox Code Playgroud)

Ale*_*uhi 8

你可以试试:

'//*[@id='mydiv']/p[position()>1 and position()<5]'
Run Code Online (Sandbox Code Playgroud)


或者,您的初始代码可以更改为:

'//*[@id="mydiv"]/p[preceding-sibling::p and following-sibling::p]'
Run Code Online (Sandbox Code Playgroud)


这样就可以选择所有p具有前后p节点的节点(即p [2]到p [4]).