android中用jsoup提取html表格的问题

yayaya 发布于 2011/08/15 22:08
阅读 5K+
收藏 1

新手一枚

我需要提取的html是表格形式的,我现在想要用jsoup把表格的内容提取出来,放在一个listview或者是textview

<table width="100%" border="" cellspacing="5"cellpadding="5">
	<tr valign="top">
	<td width="500" align="left">
	<div align="left"><b>Semester Timetable for<font color="#0000FF">ZHANG YAXIN</font></b></div>
	</td>
	<td width="250" align="right"><b>Acad Year:<fontcolor="#0000FF">2011/2012</font></b></td>
	<td width="100" align="right"><b>Sem: <fontcolor="#0000FF">Apr</font></b></td>
	</tr>
	<tr>
	<td colspan="3">
	<table width="100%" border=""cellspacing="" cellpadding="2">
	<tr class=tt_title>
	<td background="images/curveleft.gif"width="5%" align="left"> Day
	</td>
	<td width="1%">&nbsp; </td>
	<td width="5%" align="left">Start</td>
	<td width="1%">&nbsp; </td>
	<td width="5%">Finish</td>
	<td width="1%">&nbsp; </td>
	<td width="5%" align="left"> Type </td>
	<td width="1%">&nbsp; </td>
	<td width="5%" align="left"> Subject</td>
	<td width="1%">&nbsp; </td>
	<td width="20%" align="left"> Lecturer</td>
	<td width="1%">&nbsp; </td>
	<td width="15%" align="left"> Room</td>
	<td width="1%">&nbsp; </td>
	<td width="10%" align="left"> Weeks</td>
	<td width="1%">&nbsp; </td>
	<td width="12%" align="left"> Group</td>
	<td width="1%"background="images/curveright.gif">&nbsp;</td>
</tr>

目前我的代码只是写到这样

package sg.edu.tp.iit.mns;

 

import org.w3c.dom.Document;

 

import android.app.Activity;

import android.os.Bundle;

import android.sax.Element;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

 

public class TtestMain extends Activity {

EditText editText1;

Button enterBtn;

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        

 

        editText1 = (EditText)findViewById(R.id.editText1);

enterBtn = (Button)findViewById(R.id.enterBtn);

enterBtn.setOnClickListener(listener);

    }

View.OnClickListener listener = new View.OnClickListener()

{

public void onClick(View v)

{

String str = editText1.getText().toString(); 

if(v == enterBtn)

{

         TextView tv  =   new  TextView( this );

         

         String myString  =   null ;

         StringBuffer sff  =   new  StringBuffer();

try

{

  Document doc  =  Jsoup.connect( "http://epoly.tp.edu.sg/tpapp/isistt/TTServlet?txtModule=StudentSearch&txtAction=GetTT&txtSelStudentID=" + str ).get();

 

}

              myString  =  sff.toString();

}

          catch  (Exception e)

          {

 

             myString  =  e.getMessage();

             e.printStackTrace();

         } 

          tv.setText(myString);

          this .setContentView(tv);

}

};

};}

中间提取的部分只要写进去element之类的就会有错误出现

请各位高手们帮帮忙!

加载中
0
红薯
红薯
什么样的错误呢,要贴出来
倚小丁
倚小丁
@yayaya : 注意,不要用最新版的Jsoup 不支持。1.5以下的应该KO
y
yayaya
就是我不知道jsoup中间的那一部分代码怎么写,要怎么提取html里面表格的那一部分?
0
红薯
红薯
doc.select('table') 之类的就可以获取表格元素,还是要去看看 jsoup 的 api文档和示例:)
0
y
yayaya

我现在的code是   

Document doc  =  Jsoup.connect( "http://epoly.tp.edu.sg/tpapp/isistt/TTServlet?txtModule=StudentSearch&txtAction=GetTT&txtSelStudentID=" + str ).get();


 Element table = doc.select("table[class=tt_title]").first();

Iterator<Element> ite = table.select("table[width=100%]").iterator();
					
		 myString  =  sff.toString();
				
但是中间的那部分我也不知道对不对,也不知道到底应该怎么做

而且下面的    this .setContentView(tv); 一直有错误,

错误是The method setContentView(TextView) is undefined for the type new View.OnClickListener(){}

是为什么?!

红薯
红薯
@yayaya : 已经说了,你那个错误跟 jsoup 无关啊
y
yayaya
@红薯 : 但是我的jsoup中间抓取table的内容可以display在textview么?现在是 tv.setText(myString); this .setContentView(tv); 这里的‘tv’有错误
红薯
红薯
这个错误跟 jsoup 无关
0
y
yayaya
可是我也不明白到底是哪里的错误啊
0
无鸯
无鸯

引用来自“yayaya”的答案

可是我也不明白到底是哪里的错误啊

你这是使用 Android API 的问题,的确跟 jsoup 无关 :) 

不信你可以把 jsoup 干掉,然后填写一些固定的文本

0
y
yayaya

提取的时候有没有sample code可以借鉴呢?我现在是不知道整个的东西要怎么做

 

0
阿蛮
阿蛮

import org.w3c.dom.Document;??
不是import org.jsoup.nodes.Document;?

0
m
migoo
应该是import org.jsoup.nodes.Document;
返回顶部
顶部