我试图从 td
标记中提取值,但它不起作用,td
之一包含称为“技术”的值,我想要获取他后面的 td
值,例如 td
是“Technology”,而 td
是后面的:“Windows Server” <-我怎样才能得到这个值?这是一个代码:
</td>
</tr>
</tbody>
</table>
</dd>
<dt>
<a href="#course-info">Informacje o kursie</a></dt><dd id="course-info"><table><tbody>
<tr>
<td>Odbiorcy:</td>
<td style="text-transform: capitalize;">IT Professionals</td>
</tr>
<tr>
<td>Technologia:</td><td>Windows Server</td>
</tr>
<tr>
<td>Poziom:</td><td>300</td>
</tr>
<tr>
<td>Bieżąca wersja:</td><td>B</td>
</tr>
当我做类似的事情时:
for (Element element : doc.select("#course-info").first().children()){
if(element.text().contains("Tech")){
System.out.println(element.nextElementSibling().html());
}
}
然后出现 NPE(元素),但是当我删除这个循环时,整个方法工作正常。
最佳答案
“Windows Server”的特定 CSS 选择器
为 #course-info > table:nth-child(1) > tbody:nth-child(1) > tr:nth- child (2)> td:第n个 child (2)
。
如果您想知道使用哪个选择器,请打开浏览器的开发人员工具 (F12),然后检查 DOM。选择所需的元素并获取选择器。
我相信您的表中有更多行,因此您必须循环遍历。通过更改上述选择器中的一个(或多个)数字常量来更改表格。
关于java - JSoup 从 <td> 标签中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37184147/