我正在从网站解析一些表格,特别是我试图按类名提取以下单元格:
<td class=" text_bold">example</td>
我使用标准Jsoup选择器来提取带有类的标记,如下所示:
Elements cells = doc.select("td.text_bold");
问题是还有其他单元也被选中,因为它们同时具有text_bold
类和另一个类,例如:
<td class="text_bold text_align_left" valign="top" width="150">example</td>
是否有一种简单的方法可以仅过滤select()
方法中指定的具有单个类的元素?
答案 0 :(得分:2)
我以前在这种情况下陷入了困境。但是,我使用的技巧是:
Elements
使用目标类:for your context "text_bold"
Element.className()
函数获得。如果类名是"aClass bClass"
格式,则此函数将其作为一个类名返回。例如:
Document doc = Jsoup.parse("<td class=\"text_bold text_align_left\" valign=\"top\" width=\"150\">example</td>
<td class=\" text_bold\">example</td>");
Elements elms = doc.select("td.text_bold");
for(Element e:elms)
if(e.className().trim().equals("text_bold"))
//^^^<--trim is required as,
// their can be leading and trailing space
{
System.out.println(e.className());
// do my thing
}