使用jsoup解析HTML表

时间:2014-05-12 13:23:06

标签: android jsoup

我想为我的课程开发一个Android时间表应用程序。不幸的是,我的大学使用某种自动生成的HTML来显示实际的时间表。 这是链接:http://homepages-fb.th-mittelhessen.de/plaene/stundenplan/Kla1_IES.htm

对于每个主题,我都需要这样订购的内容:

Monday
14:00 - 20:30
BPS Can
A101

我目前的代码如下:

Document doc = Jsoup.connect("http://homepages-fb.th-mittelhessen.de/plaene/stundenplan/Kla1_IES.htm").get();

 for (Element table : doc.select("table")) {
     for (Element row : table.select("tr")) {
         Elements tds = row.select("td");

         //Times
         if (tds.size() > 6) {
             System.out.println(tds.get(0).text());
         }

     }
 }

输出:

5-12 13:27:46.211: I/System.out(9779): 1 8:00 9:30
05-12 13:27:46.221: I/System.out(9779): 2 9:45 11:15
05-12 13:27:46.221: I/System.out(9779): 3 11:30 13:00
05-12 13:27:46.221: I/System.out(9779): 4 14:00 15:30
05-12 13:27:46.221: I/System.out(9779): 5 15:40 17:10
05-12 13:27:46.231: I/System.out(9779): 6 17:20 18:50
05-12 13:27:46.231: I/System.out(9779): 7 19:00 20:30

1 个答案:

答案 0 :(得分:0)

这是我提出的一个解决方案,可能不是您可能想要的解决方案,但现在就是这样。由于它是一个表,一切都是一个接一个,你可以做的是,通过适当的Jsoup选择器一个接一个地得到以下数据。

Mo
Do
Mi
Do
Fr
Sa
8:00
9:30
9:45
11:45
Sem Wz
J0122
11:30
13:30
CAE
Wz
J0122
1)
SEM
Wz
J0122
DVI
Eer
J0326
2)

......等等......

现在你知道一周只有六个工作日。您可以创建String的HashMap和LinkedList。一周中的几天的字符串和其中包含的内容的LinkedList。在LinkedList中,您可以先放置时间并检查该时间后是否有任何课程,然后对所有其他时间重复该课程。

所以你现在有了数据结构,你需要做的就是调用星期几(如有必要,还有时间)并获得所需的课程。