如何在Android中用Jsoup解析指定HTML表格的日期与课程信息
使用Jsoup解析目标日期和课程名
没问题,我来帮你搞定这个解析需求!针对你提供的HTML片段,我们可以通过Jsoup的选择器精准定位到目标元素,轻松提取出05.03.2019和Fizyka 1A。
步骤说明
- 首先确保你的项目中引入了Jsoup依赖(如果用Maven的话):
<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.17.2</version> <!-- 用最新稳定版即可 --> </dependency>
- 然后编写解析代码:
import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; public class HtmlParser { public static void main(String[] args) { // 你提供的HTML片段 String html = "<tbody class=\"text-center\"> <tr> <td> <div>04.03.2019</div> <div>-</div> </td> <td> <div>05.03.2019</div> <div> <span class=\"blockElement\"> <a title=\"Zobacz więcej informacji o sprawdzianie\" href=\"/lebork/028323/Sprawdziany.mvc/Terminarz? data=636872544000000000&rodzajWidoku=2\"> <b>Fizyka 1A</b> </a> </span> </div> </td> <td> <div>06.03.2019</div> <div>-</div> </td> </tr></tbody>"; // 解析HTML为Document对象 Document doc = Jsoup.parse(html); // 定位到目标<td>:tbody.text-center下的tr中的第二个<td> Element targetTd = doc.select("tbody.text-center tr td:nth-child(2)").first(); if (targetTd != null) { // 提取日期:第二个<td>下的第一个<div>的文本 String date = targetTd.select("div:first-child").text().trim(); // 提取课程名:第二个<td>下的a标签内的<b>元素文本 String course = targetTd.select("a b").text().trim(); System.out.println("日期:" + date); System.out.println("课程:" + course); } else { System.out.println("未找到目标元素"); } } }
关键选择器解释
tbody.text-center tr td:nth-child(2):先选中带有text-center类的tbody,再找到里面的tr,最后定位到第二个td(因为目标内容在第二个td里)div:first-child:选中td下的第一个div,也就是存放日期的元素a b:选中td下的a标签内的b元素,也就是课程名的载体
运行这段代码后,就能输出你想要的05.03.2019和Fizyka 1A啦!
内容的提问来源于stack exchange,提问作者bartys123
相关产品推荐
相关产品推荐

