java有没有办法在一个Jsoup select中获得多个元素的深度?
我正在查看一个通用的HTML表,其中包含一些需要提取的值
该表的一个示例如下所示:
<table width="100%" class="list">
<tbody>
<tr>
<td><font style="font-family:Verdana; color:black; font-size:8pt; "><label>Project Number</label></font></td>
<td><font style="font-family:Verdana; color:black; font-size:8pt; ">123456</font> </td>
</tr>
<tr height="22">
<td><font style="font-family:Verdana; color:black; font-size:8pt; "><label>Report Number</label></font></td>
<td><font style="font-family:Verdana; color:black; font-size:8pt; ">REP445566</font></td>
</tr>
</table>
我想做的是从第二个<td>
标记中取出值。我不想为表做一个元素,然后为<tr>
标记做另一个元素,为<td>
做另一个元素,然后为<font>
做另一个元素。我很好奇是否有办法选择“tr>;td>;font”这样的东西,这样我就不必创建多个元素来深入了解字体的值
到目前为止,我得到的是:
Elements listTables = doc.getElementsByClass("list");
// There is a table above the one I want to use
Element mainTable = listTables.get(1);
Elements trs = mainTable.select("tr");
for (Element tr : trs) {
Elements tds = tr.select("td");
Element label = tds.get(0);
if (tds.size() > 1) {
Element value = tds.get(1);
// This gets me the td, now I need the value of the font
}
}
# 1 楼答案
当然,Jsoup非常强大!试试这个
# 2 楼答案
您需要使用css选择器查询:
输出: