2017-12-12 20 views
-1

私はJsoupを初めて使用しています。私はいくつかのスパンを持っている要素を持っています。子供たちのクラス名を取得する

<div class="first inlineblock"> 
<span class="float_lang_base_1">Prev. Close</span> 
<span class="float_lang_base_2 bold">175</span> 
</div> 
<div class="inlineblock"> 
<span class="float_lang_base_1">Day's Range</span> 
<span class="float_lang_base_2 bold">173.35 - 176.9</span> 
</div> 
<div class="inlineblock"> 
<span class="float_lang_base_1">Revenue</span> 
<span class="float_lang_base_2 bold">21.07B</span> 
</div> 
<div class="first inlineblock"> 
<span class="float_lang_base_1">Open</span> 
<span class="float_lang_base_2 bold">174.45</span> 
</div> 

私のコードは以下の通りです:

Element OverviewHeadline = doc1.select("div[class=\"clear overviewDataTable\"]").first(); 
     System.out.println("OverviewHeadline = " + OverviewHeadline.html()); 

     Elements elements = OverviewHeadline.children();    

     for (Element e : elements) 
     { 
      System.out.println("e = " + e.html()); 

      if (e.child(0).className() == "float_lang_base_1") 
      { 
       if (e.child(0).text() == "Prev. Close") 
       { 
        sPreviousClose = e.child(1).text(); 
       } 
      } 

      if (e.child(0).className() == "float_lang_base_1") 
      { 
       if (e.child(0).text() == "Day's Range") 
       { 
        sDaysRange = e.child(1).text(); 
        iLen = sDaysRange.length(); 
        ipos = sDaysRange.indexOf(" - "); 
        sMarketLow = sDaysRange.substring(0, ipos);      
        sMarketHigh = sDaysRange.substring(ipos + 3, iLen - (ipos + 3) ); 
       } 
      } 

      if (e.child(0).className() == "float_lang_base_1") 
      { 
       if (e.child(0).text() == "Open") 
       { 
        sOpen = e.child(1).text(); 
       } 
      }    
     } 

私はクラス名を取得する方法に関してわからないと思います。

答えて

1

私はそれを理解しました。以下は私がそれをどのように働かせるかです。 OverviewHeadLineの子供を選択する際に

Element OverviewHeadline = doc1.select("div[class=\"clear overviewDataTable\"]").first(); 

     Elements elements = OverviewHeadline.children();    

     for (Element e : elements) 
     { 
      String sBase1 = e.select("span[class=\"float_lang_base_1\"]").text(); 
      String sBase2 = e.select("span[class=\"float_lang_base_2 bold\"]").text(); 

      if (sBase1.equals("Prev. Close")) 
      { 
       sPreviousClose = sBase2; 
      }    

      if (sBase1.equals("Day's Range")) 
      { 
       sDaysRange = sBase2; 
      } 

      if (sBase1.equals("Open")) 
      { 
       sOpen = sBase2; 
      } 
     } 

、それはspansに私を得ました。これはsBase1sBase2を使って選択します。その後、私が必要とするアイテムを決定することができました。 sBase1フィールド名はであり、sBase2です。

+0

これでこの問題がなぜ解決されたのか説明できますか?今後の読者には、これは参考になるかもしれません。 – Zabuza

+0

OverviewHeadLineの子を選択すると、スパンが表示されます。これは、sBase1とsBase2を使用して選択します。その後、私が必要とするアイテムを決定することができました。 sBase1はフィールド名で、sBase2は値です – EddiRae

関連する問題