Jsoup:安全Elements.get(0)

Reg*_*kie 2 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;
  }    
Run Code Online (Sandbox Code Playgroud)

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

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

你知道Elements.get(0)Jsoup中是否存在这样的"安全"吗?

Jon*_*ley 7

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

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

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

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