使用jsoup解析HTML中的表格

3

我有一个关于抓取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>

这与我在此链接中的问题类似,但我想获取诗句文本和经文内容。我该如何实现这一点?
到目前为止,这是我尝试过的内容:
Element table = doc.select("table[class=scripture]").first();
Log.e("BB", "passage1: " + table.ownText());

但是它没有显示任何内容。如果需要帮助,请告知。谢谢。
1个回答

0
假设您想获取包含诗句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.

顺便提一下,有一些表格可以分离其他文本,例如:<table class="scripture"><tbody><tr><td class="verse">   </td><td class="indent">   </td><td class="content"><span class="main">因为他在我的右边,我必不动摇。</span></td></tr></tbody></table> - user1410081
<table class="scripture"><tbody><tr><td class="verse" valign="top"><a name="16:8"></a><a class="vers" href="javascript:getParallel('PSA', 16, 8);" title="Klik om grondtekst en SV te zien"> 8 </a></td><td class="content"><span class="main"><a href="javascript:toggle(divx3)" title="Tekstverwijzing - klik om deze te zien"> <img src="http://herzienestatenvertaling.nl/images/Circle_Orange.png"></a>我不断地将耶和华放在我的<i>眼</i>前;</span></td></tr></tbody></table> - user1410081
但它们是相同的。 - user1410081
如果您访问此链接:http://herzienestatenvertaling.nl/teksten/psalmen/16/,您可能会注意到在检查元素时,一些经文位于新表格中,但它们是相同的。因此,问题在于我们如何确定合并这两个单独的经文? - user1410081
这是一个不同的问题,所以需要另一个问题。简而言之,在这种情况下,您需要迭代所有类经文表并以编程方式实现您的过滤器。我不认为它可以用CSS选择器完成。 - Nicolas Filotto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接