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

时间:2012-03-26 20:36:58

标签: xpath axes

说我有以下UL:

<ul>
  <li>barry</li>
  <li>bob</li>
  <li>carl</li>
  <li>dave</li>
  <li>roger</li>
  <li>steve</li>
</ul>

我需要抓住bob&amp; amp;之间的所有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链接在一起?

1 个答案:

答案 0 :(得分:19)

尝试:

/ul/li[preceding-sibling::li='bob' and following-sibling::li='roger']