2016-11-10 466 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; –