以下代码片段只提取一个元素,特别是第一个元素:
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)
”吗?
答案 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();
}