Jsoup - 选择标签时出问题

时间:2010-11-03 02:29:56

标签: java jsoup

有没有办法选择另一个元素?

例如,如果我有:

<table>
    <tr>
        <th></th>
        <td></td>
    </tr>
    <tr>
        ...
    </tr>
</table>

我想选择我能做的第一件事:


Elements select = Jsoup.parse(HTML_PAGE).select("th");
Element element = select.get(0);
但是我该怎么说:选择第一个之后的td?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您可以使用不同JSoup Selectors的合并。

例如,对于您的问题:“选择第一个之后的td”

  • lt伪选择器:

    • :lt(n) - 兄弟索引小于n的元素
  • 兄弟选择器:您有两个选择:

    • E + F - 紧接着兄弟E
    • 之前的F元素
    • E ~ F - 一个前面有兄弟E
    • 的F元素

因此,为了选择第一个,它将是th:lt(1),并且对于它后面的td + td

最终代码:

Elements select = Jsoup.parse(HTML_PAGE).select("th:lt(1) + td");
Element element = select.get(0);

返回的元素将是紧接在找到的第一个标记之后的td标记。