Jsoup:安全Elements.get(0)

时间:2011-04-29 01:25:24

标签: html html-parsing jsoup

以下代码片段只提取一个元素,特别是第一个元素:

  String linkHref = "";
  String linkText = "";
  Elements links = div.getElementsByTag("a");
  for (Element link : links) {
    linkHref = link.attr("href");
    linkText += link.text();              
    break;
  }    

与简洁的links.get(0)相比,这是非常繁琐的代码,但它有一个重要特征:如果Elements为空,它将抛出IndexOutOfBoundException。相反,它只会将字符串留空。

我可以将它封装到我自己的函数中,但是我很难相信Jsoup已经没有这样的功能了(我更喜欢使用库函数而不是“重新发明轮子”)。我搜索了文档但找不到任何文件。

你知道Jsoup中是否存在这种“安全Elements.get(0)”吗?

1 个答案:

答案 0 :(得分:7)

elements.first()返回元素中的第一个元素,如果为空则返回null。

此外,您可以使用elements.isEmpty()检查是否有任何内容与您的选择器匹配。

,例如,取决于您要做的事情:

Element link = div.select("a").first();
if (link != null) {
  String href = link.attr("href");
  String text = link.text();
}