
 
안녕하세요 ^^
구글링해가면서 크기가 작고 단순(?)한 xml 같은경우엔 파싱 할수 있겠는데..
제가 원하는건 구글 이미지 검색결과페이지를 파싱해서 그 사진들을 가져오는 것입니다.
페이지 소스를 보니 <div class="rg_meta"> 이 녀석이 각 사진에 대한 정보를 가지고 있더군요..
그 정보들 중에서 ou(빨간박스)가 사진 url 입니다.
우선 <div class="rg_meta">의 전체 텍스트라도 파싱해서 리스트 뷰에 뿌려줄려고 하는데 
파싱이 잘안되는것 같습니다;
전체 코드는 http://javaking75.blog.me/140191738356 여기를 참고했고 제가 수정한부분은
url을 view-source:https://www.google.co.kr/search?q=%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C&biw=950&bih=934&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjDucDcjMfLAhWC2KYKHQtiD7oQ_AUIBigB
(구글 안드로이드 이미지 검색결과) 
하고 원본코드에서 아래처럼 바꿨습니다 (description은 상관없지만 코드삭제는 안했습니다)
    //실제사이트에 접속해서 데이터를 추출하는 부분
    @Override
    protected Void doInBackground(Void... params) {
        try {
            //안드로이드에서 xml문서를 읽고 파싱하는 객체를 선언
            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
            //네임스페이스 사용여부
            factory.setNamespaceAware(true);
            //실제 sax형태로 데이터를 파싱하는 객체 선언
            XmlPullParser xpp = factory.newPullParser();
            //웹사이트에 접속
            url = new URL(uri);
            //웹사이트를 통해서 읽어드린 xml문서를 안드로이드에 저장
            InputStream in = url.openStream();
            //xml문서를 일고 파싱하는 객체에 넘겨줌
            xpp.setInput(in,"UTF-8"); //xml문서의 인코딩 정확히 지정
            //item 태그를 안이라면
            boolean isInItemTag = false;
            //이벤트 타입을 얻어옴
            int eventType = xpp.getEventType();
            //문서의 끝까지 읽어 드리면서 title과 descripton을 추출해냄
            while(eventType != XmlPullParser.END_DOCUMENT){
                Log.d("뭐냐","일번");
                if(eventType==XmlPullParser.START_TAG){
                    //태그명을 읽어드림
                    tagname = xpp.getName();
                    Log.d("뭐냐","이번");
                    if(tagname.equals("div")&&xpp.getAttributeValue(null,"class").equals("re_meta") ){
                        isInItemTag = true;
                        Log.d("뭐냐","삼번");
                    }
                }else if(eventType==XmlPullParser.TEXT){
                    //태그명이 title이거나 또는 description일때 읽어옴
                    Log.d("뭐냐","사번");
                    if(tagname.equals("div")&&isInItemTag&&xpp.getAttributeValue(null,"class").equals("re_meta")){
                        title += xpp.getText(); //text에 해당하는 모든 텍스트를 읽어드림 ( += )
                    }else if(tagname.equals("description")&&isInItemTag){
                        description += xpp.getText();
                    }
                }else if(eventType==XmlPullParser.END_TAG){
                    //태그명을 읽어드림
                    tagname = xpp.getName();
                    //endtag일경우에만 벡터에 저장
                    if(tagname.equals("item")){
                        //벡터에 저장
                        titlevec.add(title);
                        descvec.add(description);
                        //변수 초기화
                        title="";
                        description="";
                        isInItemTag = false;
            Log.d("뭐냐","오번");
                    }//if-------
                }//if----------
                //다음 이벤트 다입을 저장
                eventType = xpp.next();
            }//while---------
            //모든 데이터가 저장되었다면.
            flag=true; //true : 지정된 xml파일을 읽고 필요한 데이터를 추출해서 저장 완료된 상태
        } catch (Exception e) {
        Log.d("뭐냐","육번");
        }
        return null;
    }//doInBackground()------------
}
 이렇게 하니 빈화면 밖에 안뜹니다 ㅜ 이게 첨엔 xml 용량때문에 그런줄 알았는데
로그가 일번 하고 육번만 뜨는걸 보니까 아예 못가져오는것 같은데 왜그런건가요?ㅠ