2016-11-10 17 views
3

htmlテキストをスクラップする際に別の問題があります。ここで私はから抽出しようとしているもののサンプルがあります:jsoupを使ってHTMLからテーブルを解析する

<table class="scripture"> 
    <tbody> 
    <tr> 
    <td class="verse" valign="top"> 
    <a name="2:1"></a><a class="vers" href="javascript:getParallel('LUK', 2, 1);" title="Klik om grondtekst en SV te zien">&nbsp;1&nbsp;</a> 
    </td> 
    <td class="content"> 
    <span class="main">En het geschiedde in die dagen dat er een gebod uitging van keizer Augustus dat heel de wereld ingeschreven moest worden.</span> 
    </td> 
    </tr> 
    </tbody> 
</table> 

<table class="scripture"> 
    <tbody> 
    <tr> 
    <td class="verse" valign="top"> 
    <a name="2:2"></a><a class="vers" href="javascript:getParallel('LUK', 2, 2);" title="Klik om grondtekst en SV te zien">&nbsp;2&nbsp;</a> 
    </td> 
    <td class="content"> 
    <span class="main">Deze eerste inschrijving vond plaats toen Cyrenius over Syrië stadhouder was.</span> 
    </td> 
    </tr> 
    </tbody> 
</table> 

これは、このlinkで私の問題に似ていますが、私は詩のテキストと聖書の内容を取得したいです。これをどのように達成するのですか?

Element table = doc.select("table[class=scripture]").first(); 
Log.e("BB", "passage1: " + table.ownText()); 

しかし、それは何も表示されません:

は、これまでのところ、これは私が試したものです。どんな助けもありがとう。ありがとう。

答えて

1

あなたはスパンの内容自体は詩2:2が含まれていることを表に対応する取得したいと仮定すると、あなたがそれを行うことができます。

String verse = "2:2"; 
// The span of class main located inside the table of class scripture 
// that contains a td of class verse with a link whose attribute name is the value of verse 
Element p = doc.select(
    String.format("table.scripture:has(td.verse a[name=%s]) span.main", verse) 
).first(); 
System.out.println(p.text()); 

出力:

Deze eerste inschrijving vond plaats toen Cyrenius over Syrië stadhouder was. 
+0

男うわー!あなたの説明をありがとう。わかっている。 –

+0

はところで、このような他のテキストを分離するいくつかのテーブルがあります。<テーブルクラス= "聖書">            < td class = "content">あなたの手の届く範囲は、忘れてはいけません。

+0

<テーブルクラス= "聖書"> 8 <スパンクラス= "メイン">  IkをHEEREの順番は ogenです。 –

関連する問題