2013-05-21 44 views
0

如何从XML/HTML页面获取数据?如何使用java从html页面获取数据?

我想制作一个android应用程序,用户可以通过该应用程序获取掉落的学校课程通知。 这是网站的样子: http://www.anony.ws/image/pC9

用户在安装应用程序后填写他们的学校类(klas)。 我想从表中选择数据,如果用户的类是用户,应该会收到通知。 (例如:

if (userClass == klas), then alert ("hey, " + was + " will be " + was + "because of" + opmerking); 

类似的东西,但我不知道我应该如何挑选出来的数据表,这是一个奇怪的页面使得它更困难,因为从页面消失(1/2)。到(2/2)(每页最多10个列表,因此50个列表= 5页),在此找到示例:http://suse.ghlyceum.nl/dagrooster/lwoo/。 我应该如何挑选数据并将它们放入java变量中!需要挑选的东西

<tr class='list odd'> 
<td class="list" align="center">6V</td> 
<td class="list" align="center">5</td> 
<td class="list" align="center">fatl1</td> 
<td class="list" align="center">fatl1</td> 
<td class="list" align="center">MPs</td> 
<td class="list" align="center">MPs</td> 
<td class="list" align="center">D03</td> 
<td class="list" align="center">lokaal wissel</td> 

整个网站的代码:

<html> 
<head> 
<title>Roosterwijzigingen Locatie Rijnwoude</title> 
<meta http-equiv="expires" content="0"> 
<style type="text/css"> 
<!-- 

/* page title */ 
div.mon_title 
{ 
    font-weight: bold; 
    font-size: larger; 
} 

table.info 
{ 
    background-color: #FFB515; 
    border: 2px; 
    border-style:solid; 
} 

table.mon_list 
{ 
    background-color: #FFB515; 
    border: 2px; 
    border-style:solid; 
} 

td.info 
{ 
    font-size: 15px; 
    font-style: normal; 
    font-weight: 100; 
} 

th.list, 
td.list 
{ 
    background-color: #FFB515; 
    font-size: 19pt; 
    font-style: normal; 
    font-weight: 100; 
    border: 2px; 
    border-style:solid; 
} 

--> 
</style> 
<meta name="generator" content="Untis 2013"> 
<meta name="company" content="Gruber &amp; Petters Software, A-2000 Stockerau, Austria, www.grupet.at"> 
</head> 

<body bgcolor="#FEE9B1"> 
<CENTER> 
<TABLE align="bottom" cellspacing="3" cellpadding="2"> 
<TR> 
<TD align="bottom"> 
<font face="Verdana" size="6" color="#911083">Roosterwijzigingen</font> 
<br><font size="4" color="#000000" face="Arial">Vestiging Rijnwoude</font> 
</TD> 

<TD>&nbsp;</TD> 

<TD> 

<TABLE width="100%" cellspacing="2" cellpadding="2"> 
<tr> 
    <TD></TD> 
    <TD>   </TD> 
    <TD></TD> 
    <TD>   </TD> 
    <TD></TD> 
</TR> 
<TR> 
    <TD></TD> 
    <TD>   </TD> 
    <TD></TD> 
    <TD>   </TD> 
    <TD><font size="-2">Gewijzigd 16-5-2013 13:54</size></TD> 
</TR> 
</TABLE> 

</TD> 

</tr> 
</TABLE> 
<p> 

<font size="4" face="Arial"> 
<div class="mon_title">18-05-2013 Maandag</div> 
<table class="mon_list" > 
    <tr class='list'> 
     <th class="list" align="center">Klas</th> 
     <th class="list" align="center">uur</th> 
     <th class="list" align="center">was</th> 
     <th class="list" align="center">wordt</th> 
     <th class="list" align="center">was</th> 
     <th class="list" align="center">wordt</th> 
     <th class="list" align="center">Vaklokaal</th> 
     <th class="list" align="center">opmerking</th> 
    </tr> 



<tr class='list odd'> 
    <td class="list" align="center" style="background-color: #6f95d5">4H</td> 
    <td class="list" align="center" style="background-color: #6f95d5">5-6</td> 
    <td class="list" align="center" style="background-color: #6f95d5">nat1</td> 
    <td class="list" align="center" style="background-color: #6f95d5">---</td> 
    <td class="list" align="center" style="background-color: #6f95d5">MEn</td> 
    <td class="list" align="center" style="background-color: #6f95d5">---</td> 
    <td class="list" align="center" style="background-color: #6f95d5">---</td> 
    <td class="list" align="center" style="background-color: #6f95d5">aulauur</td> 
</tr> 

<tr class='list even'> 
    <td class="list" align="center">4V</td> 
    <td class="list" align="center">1</td> 
    <td class="list" align="center">econ3</td> 
    <td class="list" align="center">econ3</td> 
    <td class="list" align="center">SVn</td></td> 
    <td class="list" align="center">SVn</td> 
    <td class="list" align="center">310</td> 
    <td class="list" align="center">lokaal wissel</td> 

</tr> 

<tr class='list odd'> 
    <td class="list" align="center">6V</td> 
    <td class="list" align="center">5</td> 
    <td class="list" align="center">fatl1</td> 
    <td class="list" align="center">fatl1</td> 
    <td class="list" align="center">MPs</td> 
    <td class="list" align="center">MPs</td> 
    <td class="list" align="center">D03</td> 
    <td class="list" align="center">lokaal wissel</td> 

</tr> 

<tr class='list even'> 
    <td class="list" align="center" style="background-color: #6f95d5">6V</td> 
    <td class="list" align="center" style="background-color: #6f95d5">8</td> 
    <td class="list" align="center" style="background-color: #6f95d5">gs</td> 
    <td class="list" align="center" style="background-color: #6f95d5">---</td> 
    <td class="list" align="center" style="background-color: #6f95d5">NBa</td> 
    <td class="list" align="center" style="background-color: #6f95d5">---</td> 
    <td class="list" align="center" style="background-color: #6f95d5">---</td> 
    <td class="list" align="center" style="background-color: #6f95d5">aulauur</td> 
</tr> 

<tr class='list odd'> 
    <td class="list" align="center">6V</td> 
    <td class="list" align="center">7</td> 
    <td class="list" align="center">nat7</td> 
    <td class="list" align="center">nat7</td> 
    <td class="list" align="center">MEn</td> 
    <td class="list" align="center">JHo</td> 
    <td class="list" align="center">001</td> 
    <td class="list" align="center">het 6e of 8e uur</td> 
</tr> 


</table> 
<p> 
<font size="3" face="Arial"> 
Groene Hart Rijnwoude 
</font></font> 

</CENTER> 
<p><center><font face="Arial" size="2"><a href="http://www.grupet.at" target="_blank" >Untis roostersoftware</a></font></center> 
</body> 
</html> 
+0

看看... http://www.vogella.com/articles/AndroidXML/article.html – ASP

+0

你可以使用JavaScript来获取广泛的数据。在你的案例表中,类mon_list。然后,您可以使用xml解析来获取特定数据并将它们存储在java变量中。 – Naveen

回答

0

仅在格式良好的HTML文档上使用XML解析器。为了解析HTML文档,例如您发布的HTML文档(该文档看起来不太完美),建议使用JSoup。阅读食谱介绍,你应该在几分钟内走好。

0

页面输出为HTML格式。所以,我的偏好是使用JSOUP。它的标准,简单易用,并且贯穿您给出的每一段HTML。

在你的android项目中包含JSOUP库。它们的大小相对适中,值得付出努力,因为您的应用程序看起来好像会读取很多html。

public static void main(String[] args) throws Exception { 
    // Get The Site and Parse it 
    Document doc = Jsoup.connect("http://suse.ghlyceum.nl/dagrooster/lwoo/").get(); 
    // Select Table 
    Element table = document.select(".mon_list").first(); 

    Iterator<Element> lines = table.select("tr").iterator(); 
    while (lines.hasNext()) { 
     Element line = lines.next(); 
     System.out.println("TD text : "+line.text()); 
    } 
} 

这只是java代码。因此,您可以将此与现有的Android代码结合使用来填充列表元素(而不是如代码所示输出到控制台上)并在视图中显示。

0
  URL url = new URL("http://facebook.com"); 
     in = new BufferedReader(new InputStreamReader(url.openStream())); 
     String inputLine; 
     while ((inputLine = in.readLine()) != null) 
      { 
      System.out.println(inputLine); 
      } 

应该足以让你开始。

相关问题