有些人知道如何用Jsoup提取这些文本吗?
<TR>
<TD bgColor=#ffa55c><B>
The first text I want. </B><BR>
<BR>
The second text I want <BR>
</TD>
</TR>
我可以通过以下方式获得第一个:
Element element = doc.select("tr td:eq(1) b").get(1);
element.text();
但我没有得到第二个:(
答案 0 :(得分:1)
您需要关闭表格单元格标记TD
才能使HTML格式正确
<table>
<TR>
<TD bgColor=#ffa55c><B>
The first text I want. </B><BR>
<BR>
</TD><TD> <!-- add this -->
The second text I want <BR>
</TD>
</TR>
</table>
否则JSoup会考虑第一个&amp;第二个单元格为一个而get
将抛出IndexOutOfBoundsException
,然后您可以简单地使用
Element element = doc.select("td").get(2);
答案 1 :(得分:1)
使用您提供给我们的表数据,您可以轻松地一举获得所有文本:
String html = "<TR><TD bgColor=#ffa55c><B>The first text I want.</B><BR><BR>The second text I want<BR></TD></TR>";
Document doc = Jsoup.parse(html);
System.out.println("test: " + doc.text());
输出:
test: The first text I want. The second text I want
我认为您需要将您的选择限制为TR并忽略其后的所有内容,因此请将其设置为
// get the TRs
Elements elements = doc.select("tr");
// iterate through the TRs
for (Element element: elements){
System.out.println(element.text());
}