마스터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 추천
 
채택된 답변
xpath 로 전환하시고

//email/text() 로 값을 얻어보세요 (간단합니다.)

http://stackoverflow.com/questions/5519766/search-in-xml-file-with-xpath-in-android
aucd29 (218,390 포인트) 님이 2015년 9월 9일 답변
pooheoul님이 2015년 9월 11일 채택됨
도움 주셔서 감사합니다~
...