组合XPATH轴(前兄弟和后兄弟)

MrG*_*ass 10 xpath axes

说我有以下UL:

<ul>
  <li>barry</li>
  <li>bob</li>
  <li>carl</li>
  <li>dave</li>
  <li>roger</li>
  <li>steve</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我需要抓住鲍勃和罗杰之间的所有LI.我可以在鲍勃之后抓住所有东西//ul/li[contains(.,"bob")]/following-sibling::li,我可以在罗杰之前抓住一切//ul/li[contains(.,"roger")]/preceding-sibling::li.问题是当我尝试将两者结合起来时,我最终得到了额外的结果.

例如,//ul/li[contains(.,"bob")]/following-sibling::li[contains(.,"roger")]/preceding-sibling::li当然会在roger之前获得所有内容,而不是忽略bob之前的项目.

有没有办法将这两个xpath链接在一起?

Dan*_*ley 19

尝试:

/ul/li[preceding-sibling::li='bob' and following-sibling::li='roger']
Run Code Online (Sandbox Code Playgroud)

  • 是的,这就是我的意思,但我没有抱怨,我鼓掌. (3认同)