Java Jsoup:选择具有单个类的元素
我正在解析网站中的一些表,具体来说,我正在尝试按类名提取以下单元格:Java Jsoup:选择具有单个类的元素,java,jsoup,Java,Jsoup,我正在解析网站中的一些表,具体来说,我正在尝试按类名提取以下单元格: <td class=" text_bold">example</td> 问题是,还有其他单元格也被选中,因为它们既有text\u bold类,又有另一个类,例如: <td class="text_bold text_align_left" valign="top" width="150">example</td> 示例 是否有一种简单的方法可以只过滤具有select()方法
<td class=" text_bold">example</td>
问题是,还有其他单元格也被选中,因为它们既有text\u bold
类,又有另一个类,例如:
<td class="text_bold text_align_left" valign="top" width="150">example</td>
示例
是否有一种简单的方法可以只过滤具有
select()
方法中指定的单个类的元素 我以前在这种情况下摔倒过。然而,我使用的技巧是:
- 首先将所有元素作为
,目标类:对于您的上下文元素
“text\u bold”
- 然后遍历每个元素,比较它们的类名,可以使用
函数获得类名。如果类名为“aClass bClass”format,则此函数将其作为一个类名返回element.className()
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
}
Document doc=Jsoup.parse(“示例
(例如“);
元素elms=doc.select(“td.text_bold”);
对于(元素e:榆树)
如果(e.className().trim().equals(“text_bold”))
//^^^试试doc.select(“td[class='text\u bold'])
@Vulcan谢谢你的建议。似乎它应该与[attribute=value]
一起使用,但它返回0个元素。在文本\u bold
之前或之后是否有空格,但仍在类声明中?如果是这样,您可能希望对startsWith使用^=
,对endsWith使用$=
,或者如果空格在任意一侧和/或不一致,请使用regex选择器~=
。谢谢,这是一个很好的解决方案。
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
}