package com.html.net;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import net.htmlparser.jericho.Element;
import net.htmlparser.jericho.HTMLElementName;
import net.htmlparser.jericho.Source;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.Handler;
public class Net_HTMLParse
{
 private String url;
 private Context context;
 private Handler handler;
 private ProgressDialog progressDialog;
 private Source source;
 private ArrayList<HashMap<String, String>> data;
 
 public Net_HTMLParse(Context context, Handler handler, ArrayList<HashMap<String, String>> data)
 {
  this.context = context;
  this.handler = handler;
  this.data = data;
 }
 
 public void open()
 {
  
  url = "http://dorm.chungbuk.ac.kr/pub/board/bbs_free.html?cboardID=noti040101";
  
  //처리하기
  try
  {
   process();
  }catch(IOException e)
  {
   e.printStackTrace();
  }
 }
 
 private void process() throws IOException
 {
  //상태 Progress 띄우기 위해서 사용함!
  final Handler mHandler = new Handler();
  new Thread()
  {
   @Override
   public void run()
   {
    URL nURL;
    try
    {
     nURL = new URL("url);
     mHandler.post(new Runnable(){
      public void run()
      {
       progressDialog = ProgressDialog.show(context, "", "잠시만 기다려주세요^^");
      }
     });
     
     //모든 데이터 초기화
     data.clear();
     
     InputStream html = nURL.openStream();
     //가져오는 HTML의 인코딩형식
     source = new Source(new InputStreamReader(html, "EUC-KR"));
     
     //테이블가져오기
     Element table = (Element) source.getAllElements(HTMLElementName.TABLE).get(13);
     
     System.out.println("테이블 개수!!!!" + source.getAllElements(HTMLElementName.TABLE).size());
     
     //테이블 안의 TR 개수
     int tr_count = table.getAllElements(HTMLElementName.TR).size();
     
     Element tr = null;
     
     HashMap<String, String> hm = null;
     
     for(int i=1; i<tr_count; i++)
     {
      tr = (Element) table.getAllElements(HTMLElementName.TR).get(i);
      
      hm = new HashMap<String, String>();
      
      hm.put("no", ((Element) tr.getAllElements(HTMLElementName.TD).get(0)).getContent().toString());
      hm.put("title", ((Element) tr.getAllElements(HTMLElementName.TD).get(1)).getContent().toString());
      hm.put("writer", ((Element) tr.getAllElements(HTMLElementName.TD).get(2)).getContent().toString());
      hm.put("subject", ((Element) tr.getAllElements(HTMLElementName.TD).get(3)).getContent().toString());
      
      data.add(hm);
     }
     
     mHandler.post(new Runnable()
     {
      public void run()
      {
       progressDialog.cancel();
       //업데이트 완료를 핸들러로 보내줌
       handler.sendEmptyMessage(0);
      }
     });
    }catch (MalformedURLException e)
    {
     e.printStackTrace();
    }
    catch (IOException e)
    {
     e.printStackTrace();
    }
    
   }
   
  }.start();
 }
}

안드로이드어플을 처음 만드는 학생입니다..

요 예제 소스를 인터넷에서 구했는데 이소스를 이용해서 html 파싱을 해오고 싶습니다.

페이지는 dorm.chungbuk.ac.kr 이구요

여기서 공지사항, 자유게시판, 건의사항/Q&A 이렇게 파싱해서 보여주고 싶어요

탭과 listview로 목록은 만들었는데, 그 목록을 눌렀을때 공지사항게시판 글 목록> 다시 누르면 글 내용

이렇게 나오게 하고싶은데, 응용하는데 너무 어렵더라구요 ㅜ

공지사항 페이지는 http://dorm.chungbuk.ac.kr/pub/board/bbs_free.html?cboardID=noti040101 입니다.......

소스를 봤는데 이거 영...처음 만들다보니 응용하는게 어려워요

글 목록이 나오는건 14번째 테이블인거 같은데 맞게 본건지 모르겠습니다

이번주내로 완성해야하는데...도와주세요!!!부탁드립니다ㅜㅜ

참, 그리고 공지사항은 다읽었어요!