java - 检查 Span 的可为空状态

标签 java foreach iterator jsoup html-parsing

我用 jsoup 解析了两个元素,它们的跨度相同:

span.icon-list__title

问题是:第一个跨度始终存在,但第二个跨度可能不存在。我尝试了 for 循环,对第一个循环进行迭代器检查,然后检查下一个循环:

Iterator t = third.select("span.icon-list__title").iterator();
    if (t.hasNext()) {
        title_software = t.next().toString();
        //first behaviour
        while (t.hasNext()) {
            photo_time = t.next().toString();
        }
    }

但我似乎总是收到java.lang.IndexOutOfBoundsException: Invalid index 2, size is 2 error,因为跨度似乎不存在。有没有办法在解析之前检查它是否存在? 问题是我有两个单独的字符串值。

基本上,我有 3 个 divicon-list,它们可以为空(不存在),并且每个 div 都有两个 div:

icon-list__titleicon-list__infos,第三个除外。 无论如何,我可以检查每个项目是否为空吗?我似乎无法将这些项目存储在正确的字符串变量中。

只有第三个 div 有两个 icon-list__title 类的跨度。

这是 HTML:

  <div class="icon-list">
   <div class="icon-list__icon">
      <i class="icon-expand"></i>
   </div>
   <div class="icon-list__content">
      <div class="icon-list__title">4000 x 2667 pixels</div>
      <div class="icon-list__infos">
         <span>3.0 MB</span>
      </div>
   </div>
</div>
<div class="icon-list">
   <div class="icon-list__icon">
      <i class="icon-camera"></i>
   </div>
   <div class="icon-list__content">
      <div class="icon-list__title">
         450
      </div>
      <div class="icon-list__infos">
         <span>1</span>
         <span>2</span>
         <span>3</span>
         <span>4</span>
      </div>
   </div>
</div>
<div class="icon-list">
   <div class="icon-list__icon">
      <i class="icon-info"></i>
   </div>
   <div class="icon-list__content">
      <span class="icon-list__title">
      Span span 1
      </span>
      <span class="icon-list__title">
      Span span 2
      </span>
   </div>
</div>

一切都可以为空。
如果我使用 foreach 循环并将所有内容放入 recyclerview 中,这是最好的吗?

最佳答案

像这样的代码怎么样,非常静态的代码,但可能可以完成工作:

Elements result = third.select("span.icon-list__title");
if (result.size() > 0) {
    title_software = result.get(0).toString();
}
if (result.size() > 1) {
    photo_time = result.get(1).toString();
}
System.out.println(title_software);
System.out.println(photo_time);

关于java - 检查 Span 的可为空状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41732274/

相关文章:

html - 在每三个元素之后放置广告 - Laravel Foreach

php - 在 foreach 里面返回简码

java - 遍历Java中的所有文件

java - HashMap 通过 SOAP 从 Java 到 PHP 再返回

javascript - FUNCTION中如何返回为多维数组的输出

java - Android - Syncano SDK 不工作

c++ - 为什么两个迭代器在循环中分开?

c++ - 写入输出迭代器的模板成员函数

java - PDFBox - 线/矩形提取

java - 多次调用 geotools 的 SimpleFeatureCollection.features() 会导致 "Maximum lock count exceeded"