2017-12-12 2 views
-1

저는 Jsoup을 처음 사용하기 때문에 다음과 같은 방법을 잘 모릅니다. 나는 내가 갈려고 노력하고있는 몇 개의 경간을 가지고있는 요소를 가지고있다.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