2017-09-06 29 views
1

誰かがjsoupを使ってhtmlから情報を抜き出す手助けをすることができますか?必要テーブルからJsoupを使ってテキストを抽出する方法

情報は、私は、HTMLドキュメント内のいくつかの場所でそれを見ることができ23.90

<tr> 
    <td class="leftcell" valign="top"> 
    <div onclick= 
    "ShowHideTravelDetails('bookingPrice_TaxesToggleBox', 
'bookingPrice_TaxesToggleIcon', '/Images');" class="productheader">...</div> 
</td> 
<td class="rightcell emphasize" align="right" 
valign="bottom">$23.90</td></tr> 

です。 私は試しました

Elements taxes = doc.select("td.rightcell.emphasize"); 

しかし、それは動作していません。

はまた、テーブルなどから情報を抽出してみました:

Elements table = doc.select("table[class=selectiontable]"); 
     Elements rows = table.get(0).select("td[class^=rightcell emphasize]"); 
     for (Element row : rows) { 


      Elements tds = row.select("td"); 
      System.out.println(tds.get(13)); 
+0

のコードを追加してくださいません画面が最初のコードスニペットは、私にはよさそうだ – soorapadman

+0

を撃ちました。 2番目の方法では、 'td'を取り出して'行 'を呼び出して、子' td'を取得しようとしています。代わりに 'tr'を取得したいと思っています(しかしクラスセレクタはもう意味をなさない) – Aaron

答えて

0

この のように私はあなたがこのようなコードがあると仮定してみます。結果を得るには、ネストされたレベルの反復処理を行う必要があります。

public class Test { 
    public static void main(String[] args) { 
     String html ="<table class=\"selectiontable\">\n" + 
       "<tr>\n" + 
       " <td class=\"leftcell\" valign=\"top\">\n" + 
       " <div onclick=\n" + 
       " \"ShowHideTravelDetails('bookingPrice_TaxesToggleBox', \n" + 
       "'bookingPrice_TaxesToggleIcon', '/Images');\" class=\"productheader\">...</div>\n" + 
       "</td>\n" + 
       "<td class=\"rightcell emphasize\" align=\"right\" \n" + 
       "valign=\"bottom\">$23.90</td></tr>\n" + 
       "</table>"; 


     Document document = Jsoup.parse(html); 
     Elements elements = document.select(".selectiontable"); 
     for (Element element :elements){ 
      for (Element row : element.select("tr")) { 
       Elements tds = row.select("td"); 
       if (tds.size() > 1) { 
        System.out.println(tds.get(1).text()); 
       } 
      } 
     } 
    } 


} 

出力:

$23.90 
+0

ありがとう!しかし、今私は問題が私はDocument document = Jsoup.parse(doc.toString())でHTML文書全体を解析しようとしている。それは何も創設されていません。 23.90の出力はない。この数字がhtmlファイルのいくつかの場所に表示されることがありますか? – cinnamon

+0

@brigitteフルHTMLなしあなたの問題を解決できません。完全なhtmlや少なくとも 'table'タグから共有してください。私はソートされます。 – soorapadman

+0

OK「98.80」をクリックして結果を得ることができますか? – soorapadman

関連する問題