繁体   English   中英

Jsoup:选择具有单个类的元素

[英]Jsoup: Selecting elements that have a single class

我正在从网站解析一些表,特别是我试图通过类名提取以下单元格:

<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()方法中指定的单个类的元素?

我之前陷入过这种境地。 但是,我使用的技巧是:

  • 首先将所有元素作为具有目标类的Elements :对于您的上下文"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

             }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM