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

xmlPullParser에 관하여 질문드립니다

0 추천

JAVA 소스코드

public String getXML(InputStream is2) {

Log.i("xxx", "getXML start!");

try {

XmlPullParserFactory factory = XmlPullParserFactory.newInstance();

XmlPullParser parser = factory.newPullParser();

               parser.setInput(is2,"UTF-8");

               Log.i("xxx", "xml parser!");

int eventType = parser.getEventType();

empDTO dto = null;

while( eventType != XmlPullParser.END_DOCUMENT){ 

System.out.println("eventType = " + eventType);

switch(eventType) {

case XmlPullParser.START_TAG:

System.out.println("여기 들어옵니까!?");

String startTag = parser.getName();

if(startTag.equals("record"))

{

dto = new empDTO(); 

}

if(dto != null ) 

{

if(startTag.equals("email"))

dto.setEmail(parser.nextText()); 

String testmail = parser.nextText();

Log.i("xxx", testmail);

}

}

else

{

Log.i("xxx", "dto = null");

}

break;

case XmlPullParser.END_TAG:

String endTag = parser.getName();

if(endTag.equals("record"))

 

emailc = dto.getEmail();

String emailccc = dto.getEmail();

Log.i("xxx", emailccc);

}

 

}//end switch

eventType = parser.next();

System.out.println("eventType2 = " + eventType);

}//end while

System.out.println("End document");

/*

for( empDTO xx : list){

        Log.i("xxx",xx.getEmail()+" ");

       }

Log.i("xxx", "xml parser3!");

*/

} catch (XmlPullParserException e) {

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println("에러1");

} catch (IOException ie) {

// TODO Auto-generated catch block

ie.printStackTrace();

System.out.println("에러2");

}

System.out.println("email2 = " + emailc);

return emailc;

}

 

 

 

 

 XML형태

<dept><record><email>haha</email></record></dept>

 

오류내용

09-08 05:35:48.480: W/dalvikvm(1229): threadid=1: thread exiting with uncaught exception (group=0xb3a59ba8)
09-08 05:35:48.490: E/AndroidRuntime(1229): FATAL EXCEPTION: main
09-08 05:35:48.490: E/AndroidRuntime(1229): Process: com.sizzle, PID: 1229
09-08 05:35:48.490: E/AndroidRuntime(1229): java.lang.NullPointerException
09-08 05:35:48.490: E/AndroidRuntime(1229):     at com.sizzle.LoginSignupDialog.onClick(LoginSignupDialog.java:134)
09-08 05:35:48.490: E/AndroidRuntime(1229):     at android.view.View.performClick(View.java:4438)
09-08 05:35:48.490: E/AndroidRuntime(1229):     at android.view.View$PerformClick.run(View.java:18422)
09-08 05:35:48.490: E/AndroidRuntime(1229):     at android.os.Handler.handleCallback(Handler.java:733)
09-08 05:35:48.490: E/AndroidRuntime(1229):     at android.os.Handler.dispatchMessage(Handler.java:95)
09-08 05:35:48.490: E/AndroidRuntime(1229):     at android.os.Looper.loop(Looper.java:136)
09-08 05:35:48.490: E/AndroidRuntime(1229):     at android.app.ActivityThread.main(ActivityThread.java:5001)
09-08 05:35:48.490: E/AndroidRuntime(1229):     at java.lang.reflect.Method.invokeNative(Native Method)
09-08 05:35:48.490: E/AndroidRuntime(1229):     at java.lang.reflect.Method.invoke(Method.java:515)
09-08 05:35:48.490: E/AndroidRuntime(1229):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
09-08 05:35:48.490: E/AndroidRuntime(1229):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
09-08 05:35:48.490: E/AndroidRuntime(1229):     at dalvik.system.NativeStart.main(Native Method)

 

 

 

xml에서 중앙에있는 haha를 추출해낼려고합니다

안드로이드와 jsp로 DB연동을 할려고하는 과정인데 START_TAG를 인식을 하지 못하고 자꾸 while문을 빠져나와서 null로 출력이됩니다

해결법을 아시는분은 도움좀 부탁드립니다

pooheoul (600 포인트) 님이 2015년 9월 9일 질문

1개의 답변

+1 추천
 
채택된 답변

java.lang.NullPointerException at com.sizzle.LoginSignupDialog.onClick(LoginSignupDialog.java:134)

라고 나와있으니 LoginSignupDialog.java 파일의 134라인을 살펴보시면 되겠네요

파싱과 무관한 곳에서 널 포인터 에러가 난 것은 아닌지....

cc1232 (35,280 포인트) 님이 2015년 9월 9일 답변
pooheoul님이 2015년 9월 11일 채택됨
답변 감사합니다. 근데 소스의 흐름상
xml을 파싱한값을 넣어준 부분이 null로 들어가서 null포인트에러가 나는거라서요... xml파싱이 제대로 안되서 오류가나는거같아요ㅠ
...