使用max()函数XPath

时间:2015-10-06 07:37:24

标签: xml xpath

我对如何在XPath上使用max()函数有疑问,

如果考虑使用xml,我需要选择其中包含最大子<tr>个数的<td>元素。

<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>个孩子的最大数量?

1 个答案:

答案 0 :(得分:2)

认为这个表达式可以提供你想要的东西:

td

也就是说,我们希望当前节点td的计数大于或等于任何先前节点的td以及任何后续节点tr的计数。< / p>

您可能需要调整起点(我刚开始使用//来查看任何sibling)并且根据所需的关系,following轴可能需要更改简单地precedingJSON(jsonString)