안드로이드 HTML 파싱하는 '아파치 클래스'


Android/안드로이드 프로그래밍 2011. 1. 22. 16:29



 

import java.net.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.http.*;
import org.apache.http.client.methods.*;
import org.apache.http.impl.client.*;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import android.app.*;
import android.content.Context;
import android.os.*;
import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.view.*;
import android.webkit.WebView;
import android.widget.*;
public class parse extends Activity {
 TextView mResult;
 TextView mResult2;
 
 
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.parse);
  mResult2 = (TextView)findViewById(R.id.Web);
  mResult2.setText( "공연정보&파티정보 입니다 " + "\n" +
    "메뉴버튼을 누르시고 지역설정을 해주시길 바랍니다." + "\n" +
    "추후 알림 서비스&위젯 서비스는 업데이트 할 예정입니다." + "\n" +
    "기타 문의는 http://mnworld.co.kr로 부탁드립니다");
  
 }
 
 
  //* 아파치 클래스 사용
 String DownloadHtml(String addr) {
  HttpGet httpget = new HttpGet(addr);
  DefaultHttpClient client = new DefaultHttpClient();
  StringBuilder html = new StringBuilder();
  try {
   HttpResponse response = client.execute(httpget);
   BufferedReader br = new BufferedReader(new
     InputStreamReader(response.getEntity().getContent()));
   for (;;) {
    String line = br.readLine();
    if (line == null) break;
    html.append(line + '\n');
   }
   br.close();
  }
  catch (Exception e) {;}
  return html.toString();
 }
 //*/


마지막 부분에 주석달린 곳이 아파치 클래스라고해서 DownloadHtml 이라는 메서드를 통해,
HTML 을 받아오는 클래스들입니다^^

저 같은경우에는 RSS html 주소를 받아와서 다시 xml 넣어서 파싱을 해보았네요~!
삼성전자 갤럭시 S20 플러스 자급제폰, 코스믹 그레이, 256GB Apple 에어팟 프로 (노이즈캔슬링 방수 블루투스 5), MWP22KH/A, 단일 색상 삼성전자 갤럭시탭S6 10.5 128G WIFI, SM-T860N, 마운틴 그레이

WRITTEN BY
ShakeJ

트랙백  0 , 댓글  2개가 달렸습니다.
  1. 김병철 2011.01.27 17:30
    안드로이드 개발을 해보고 있는 학생입니다. 여러가지 난이도 있는 프로젝트를 혼자서 해보고 있는데요. 최근 하나의 벽에 부딪친 상황입니다. 그래서 염치불구하고 질문을 올립니다.


    <이미지로 된 지도를 띄우고 그 위에 버튼을 올립니다.



    이미지로 된 지도는 확대, 축소, 드래그가 가능하고 버튼들도 이미지로 된 지도의 특정 위치에 고정되어 이미지의 크기가 변하더라도 특정위치에 그대로 있도록 해야합니다.



    예를 들면 삼성의 안드로이드용 애버랜드에서 이 기술을 볼 수 있습니다>

    혹시 이 기술을 구현하기에 필요한 내용이 무엇인지 알려주실 수 있으십니까? 조그마한 소스라도 제 연구에 큰 도움이 될 것입니다.


    혹시라도 이메일을 통해 질문에 대한 답변을 하실 것이면

    samkukjijojo@naver.com 으로 연락을 해주셔도 됩니다..
    • 맵구현을 위해서는 아무래도 안드로이드의 장점으로 꼽을 수 있는 구글 지도 api 를 사용하시는 것이 가장 좋을 듯 해요^^ 기본적으로 안드로이드 폰 안에는 구글 지도가 내장이 되어있거든요! 그리고 gps 시스템 등과의 연동도 좋다고 그러더라구요!

      아마도 구글 지도 API 를 사용하시면, 확대, 축소, 드래그가 가능해지고, 크기가 변하더라도 특정위치에 있는 것들은 고정을 시키시면 좋겠네요^^ API 에 대한 개념만 아시면 사용하시는 것은 크게 어렵지 않으시리라 생각됩니다^^

      API 는 어떤 회사들이 (서버들이) 해주는 서비스 를 사용한다고 생각하시면 쉬우실거에요! 즉 김병철님께서는 API 를 제공하는 서버에 어떠한 문제를 넘겨주시면 그 서버에서는 그 문제를 풀어 다시 제공해주는 '서비스'만 빌려온다는 개념으로 파헤쳐보시면 쉬울 듯 합니다^^
secret