0
我对如何使用max XPath的()函数,使用MAX()函数的XPath
如果考虑下面的XML的一个问题,我需要选择中有孩子<td>
的最大数量的<tr>
元素。
<doc>
<table>
<tbody>
<tr>
<td>aa</td>
<td>bb</td>
<td>cc</td>
<td>dd</td>
</tr>
<tr>
<td>nn</td>
<td>oo</td>
</tr>
<tr>
<td>qq</td>
<td>rr</td>
<td>ss</td>
<td>tt</td>
<td>uu</td>
<td>vv</td>
<td>xx</td>
<td>yy</td>
<td>zz</td>
</tr>
</tbody>
</table>
</doc>
所以我写了下面的XPath查询
tr[max(count(child::td))]
但它不返回任何结果。谁能告诉我一个查询,我可以得到<tr>
其中有最大数量的子<td>
s?
如果多个'tr'具有相同数量的'td'(这是最大值),会发生什么? –
@Damien_The_Unbeliever,那么应该选择两个
回答
我认为这表达给你你想要的东西:
也就是说,我们希望当前节点的计数
td
s到大于或等于前述任一节点的td
的计数s和任何后续节点td
s。您可能需要调整的出发点(我只是去任何
tr
用//
开始),并根据所需要的关系,在sibling
轴可能需要更改为纯following
和preceding
。来源
2015-10-06 07:55:05
相关问题