마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

xmlpullparser사용하고 있어요 ㅠㅠ

0 추천
package com.example.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;

import java.io.BufferedInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.Buffer;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    ArrayList <Emergency> Elist;
    ListView List;
    EditText editLoc;
    public final static String Emergency_room_URL = "http://apis.data.go.kr/B552657/ErmctInfoInqireService/getEmrrmRltmUsefulSckbdInfoInqire";
    public final static String KEY = "&ServiceKey=fn0rBZbLfxxwnHO9zFBQ2uimEvX4paRVZPVRHjSPhWtHbCDL%2FzshfDQf0isIFAJZEq1W%2BuUr96U0Tsa0d1Fiww%3D%3D&pageNo=1&numOfRows=30";


    //http://apis.data.go.kr/B552657/ErmctInfoInqireService/getEgytListInfoInqire?Servicekey=fn0rBZbLfxxwnHO9zFBQ2uimEvX4paRVZPVRHjSPhWtHbCDL%2FzshfDQf0isIFAJZEq1W%2BuUr96U0Tsa0d1Fiww%3D%3D&Q0=경상남도&Q1=진주시&QZ=A&ORD=ADDR&pageNo=1&numOfRows=30
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        List = (ListView)findViewById(R.id.List);
        editLoc = (EditText)findViewById(R.id.editLoc);
        Button btnSend = (Button)findViewById(R.id.btnSend);
        btnSend.setOnClickListener(new View.OnClickListener(){

            public void onClick (View v) {
                if (v.getId() == R.id.btnSend) {
                    final String requestKey = editLoc.getText().toString();
                    //작업스레드 시작
                    Thread t = new Thread(new Runnable() {
                        @Override
                        public void run() {
                            Elist = xmlPaser(requestKey);

                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    MyCustomAdapter adapter = new MyCustomAdapter(getApplicationContext(), R.layout.list, Elist);
                                    List.setAdapter(adapter);


                                }
                            });
                            //메인스레드 영역 끝
                        }
                    });
                    t.start();
                    //작업스레드 끝
                }
            }
        });//end onClick

    }//end onCreate
    public ArrayList<Emergency> xmlPaser(String city){
        ArrayList<Emergency> allList = new ArrayList<Emergency>();
        //String targetAddress = URLEncoder.encode(city,"UTF-8")
        //URL  url = new URL(Emergency_room_URL + "?STAGE1=" + targetAddress + "&ServiceKey=" + KEY);


        try{

            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
            XmlPullParser parser = factory.newPullParser();
            factory.setNamespaceAware(true);

            String targetAddress = URLEncoder.encode(city,"UTF-8");
            URL  url = new URL(Emergency_room_URL + "?STAGE1=" + targetAddress + KEY);
            InputStream is = url.openStream();
            parser.setInput(is, "UTF-8");

            int eventType = parser.getEventType();

            Emergency stu = null;
            while(eventType != XmlPullParser.END_DOCUMENT){
        //        if(eventType == XmlPullParser.START_TAG){
                switch (eventType) {

                    case XmlPullParser.START_TAG:
                        String startTag = parser.getName().trim();
                        if ("item".equals(parser.getName())) {

                            if ("dutyName".equals(startTag)) {
                                stu.setname(parser.getAttributeValue(0));
                            }
                            if ("dutyTel3".equals(startTag)) {
                                stu.setTell(parser.getAttributeValue(0));
                            }
                            if ("hvec".equals(startTag)) {
                                stu.sethvec(parser.getAttributeValue(0));
                            }
                            if ("hvgc".equals(startTag)) {
                                stu.sethvgc(parser.getAttributeValue(0));
                            }
                            if ("hvicc".equals(startTag)) {
                                stu.sethvicc(parser.getAttributeValue(0));
                            }
                            break;


                        }

                } eventType = parser.next();
            }


        }catch(Exception e){e.printStackTrace();}
        return allList;
    }
}
 
여기서 
while(eventType != XmlPullParser.END_DOCUMENT){
이 문장 안으로 들어가지 않아요 ㅠ.ㅠ
어떻게 해야 할까요 ㅠㅠ 부탁드립니다.
_안스젭라 (120 포인트) 님이 2017년 5월 19일 질문

1개의 답변

0 추천
xml 의 시작 <> 및 끝 </> 을 잘 살펴보세요.

END_DOCUMENT는 끝에서만 나타납니다.
익명사용자 님이 2017년 5월 22일 답변
...