<td style="padding-left: 5px; padding-right: 5px; padding-top: 1px; padding-bottom: 1px; border: none;">
<strong>test:</strong> 62
</td>
<td style="padding-left: 5px; padding-right: 5px; padding-top: 1px; padding-bottom: 1px; border: none;">
<a style="color: inherit;" href="redacted">
<strong>test:</strong> 51
</a>
</td>
<td style="padding-left: 5px; padding-right: 5px; padding-top: 1px; padding-bottom: 1px; border: none;">
<a style="color: inherit;" href="redacted">
<strongtest:</strong> 11
</a>
</td>
我想在每个强力标签后获取该数字。我想我可以做doc.select(“强〜*”),但那是给我null。
我也试过了 元素strong = document.select(“strong”)。first(); //这不应该是强标签之后的第一个元素,还是介于?
之间在结束标记之后选择的答案是什么。
答案 0 :(得分:1)
您要查找的数字不在强标记之间。它们位于td标签内部或位于标签内部,标签本身位于td标签内。您可以通过选择td标签并检查td是否有自己的文本来获取数字;如果是,那就是你的号码,获得td的第一个孩子,这是一个标签,并获得自己的文本。例如:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JsoupTest {
public static void main(String argv[]){
String html = "<table>"+
" <td style=\"padding-left: 5px; padding-right: 5px; padding-top: 1px; padding-bottom: 1px; border: none;\">" +
" <strong>test:</strong> 62" +
" </td>" +
" <td style=\"padding-left: 5px; padding-right: 5px; padding-top: 1px; padding-bottom: 1px; border: none;\">" +
" <a style=\"color: inherit;\" href=\"redacted\">" +
" <strong>test:</strong> 51" +
" </a>" +
" </td>" +
" <td style=\"padding-left: 5px; padding-right: 5px; padding-top: 1px; padding-bottom: 1px; border: none;\">" +
" <a style=\"color: inherit;\" href=\"redacted\">" +
" <strong>test:</strong> 11" +
" </a>" +
" </td>";
Document doc = Jsoup.parse(html);
Elements tds = doc.select("td");
for(Element e : tds){
if (!e.ownText().isEmpty()){
System.out.println(e.ownText());
}
else{
System.out.println(e.child(0).ownText());
}
}
}
}