JSoup从标记中提取值

时间:2016-05-12 10:24:37

标签: java html jsoup

我尝试从td代码中提取值,但它不起作用,td中的一个包含名为" Technology"的值,我希望获得td之后的价值,例如td是'技术'以及之后的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出现(元素),但是当我删除这个循环时,整个方法工作正常。

1 个答案:

答案 0 :(得分:1)

&#34; Windows Server&#34;的特定CSS selector;是#course-info > table:nth-child(1) > tbody:nth-child(1) > tr:nth-child(2) > td:nth-child(2) 如果您想知道要使用哪个选择器,请打开浏览器的开发人员工具(F12),然后检查DOM。选择所需的元素并获取选择器 我相信你的表中有更多的行,所以你必须循环通过。表,通过更改上面选择器中的一个(或多个)数字常量。