java - JSoup 从 <td> 标签中提取值

标签 java html jsoup

我试图从 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/

相关文章:

javascript - HTML5 Canvas |替换颜色 |去除颜色

Java 连接从 jar 失败,但在 Eclipse 中正常

android - Jsoup.parse() 方法的替代方法

java - 转储http header

java - java 锁定对象

java - ClassCastException 与机器之间的 webapp

html - 子容器的 CSS 背景颜色延伸到父容器

php - 缩放时背景图像移动也无法对齐表格中的文本

java - 如何在Java中从jsoup文档的框架中显示网页?

java - 完成后如何处理 Java 代码