2016-11-10 469 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」> omdat Hij aan mijn rechterhand is,wankel ik niet。

+0

<表類= 「聖經」> 8 <跨度類= 「主要」> 益stel mij de HEERE voortdurend voor ogen; –