如何使用xpath select 某个节点的一定数量的后代?

How to select a certain number of descendants of a node using xpath?

说我有以下 xml:

<a>
   <b>
      <c>
         <d />
         <e />
      </c>
   </b>
   <g>
      <b>
         <h />
         <f />
      </b>
   </g>

如果我想 select 节点的所有后代 'b' 我可以使用以下 xpath 查询:

//b//*

或使用坐标轴:

//b/descendant::*

但是我只想 select 节点 'b' 的 4 个后代,请问有人知道怎么做吗?

PS : 我正在使用 xpath 1.0

//c/descendant::*[position() <= 4]

决定了!我应该像这样使用括号:

(//b/descendant::*)[position()<=4]

因为没有它们,[position() <= 4] 部分将应用于后代元素在其父元素中的位置,而不是它在结果节点集中的位置。