XPath查找先前范围中的最后3项

时间:2012-03-29 17:00:54

标签: xml xpath

说我有以下XML片段:

<ul>
  <li>alice</li>
  <li>bob</li>
  <li>carla</li>
  <li>dave</li>
  <li>eric</li>
  <li>fanny</li>
</ul>
<team>Team 1</team>

我想要最后3名成员(戴夫,埃里克,范妮)。

我可以使用//team/preceding::li抓住所有团队成员。

我没有成功抓住范围

的最后3名成员

//team/preceding::li[last()-3 to last()]或职位  //team/preceding::li[position() > last()-3]

2 个答案:

答案 0 :(得分:2)

当您处理解决preceding::的情况时,订单则相反 - 然后返回文档订单。

xml sel -t -c '//team/preceding::li[position() <= 3]' foo.xml 
<li>dave</li><li>eric</li><li>fanny</li>

答案 1 :(得分:1)

对于XML

<ul>
  <li>alice</li>
  <li>bob</li>
  <li>carla</li>
  <li>dave</li>
  <li>eric</li>
  <li>fanny</li>
</ul>

使用

//li[position() > last() - 3]

它恰好选择最后3个节点。

相关问题