Jsoup:安全 Elements.get(0)

发布于 2024-11-04 00:23:04 字数 594 浏览 1 评论 0原文

以下代码片段提取一个且仅一个元素,特别是 first 元素:

  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)”吗?

The following snippet of code extracts one and only one element, specifically the first element:

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

This is really cumbersome code compared to the concise links.get(0) but it has one important feature: It will not throw an IndexOutOfBoundException if Elements is empty. Instead, it will simply leave the strings empty.

I can encapsulate this into my own function but it's hard for me to believe that Jsoup doesn't have such function already (I prefer using library function over "re-inventing the wheel" as much as possible). I searched the documentation but couldn't find any.

Do you know whether such "safe Elements.get(0)" exists in Jsoup?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

独守阴晴ぅ圆缺 2024-11-11 00:23:04

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

您也可以使用 elements.isEmpty() 检查是否有匹配项你的选择器。

例如,取决于您想要做什么:

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

elements.first() returns the first element from elements, or null if empty.

Also you can use elements.isEmpty() to check if anything matches your selector.

E.g., depending on what you are trying to do:

Element link = div.select("a").first();
if (link != null) {
  String href = link.attr("href");
  String text = link.text();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文