2017-01-19 7 views
2

スパンのNULL可能状態の確認:同じスパンの両方、私はjsoupで解析された2つの要素を持っている

span.icon-list__title 

問題がある:最初のスパンが常にあるが、2番目はないかもしれません。スパンが存在していないようですので、

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を取得するように見える:私が最初にして、次のチェックイテレータをやって、forループを試してみました。それを解析する前に存在するかどうかを確認する方法はありますか? 問題は2つの別々の文字列値があることです。

は基本的に私は(存在しない)NULL可能であることができ、クラスicon-list、の3 divsを持って、それらのdiv要素のそれぞれ2つのdiv要素があります。第三除き、

icon-list__titleicon-list__infosを。 すべてのアイテムがヌルであるかどうか確認できますか?アイテムを適切な文字列変数に格納しているように見えません。

3番目のdivのみが、クラスicon-list__titleの2つのスパンを持っています。

は、ここに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> 

すべてがNULL可能することができます。
foreachループを使用して、すべてをrecyclerviewに入れるのが最善でしょうか?このような何か、非常に静的なコードが、仕事をするかもしれない程度

答えて

2

方法:

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); 
関連する問題