如何使用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] 部分将应用于后代元素在其父元素中的位置,而不是它在结果节点集中的位置。
说我有以下 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] 部分将应用于后代元素在其父元素中的位置,而不是它在结果节点集中的位置。