모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    페이커하악님의
    개인페이지입니다
    가입 : 15-06-13
    방문 : 473회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_12124
    작성자 : 뿌뿌빠뿌뿌
    추천 : 0
    조회수 : 1737
    IP : 112.166.***.68
    댓글 : 8개
    등록시간 : 2015/07/15 22:19:46
    http://todayhumor.com/?programmer_12124 모바일
    android xml 파싱 질문드립니다!!! ㅠ_ㅠ 능력자분들 도와주세요
    옵션
    • 본인삭제금지
    xml 파일을 받아와서 string 변수에 저장을 하였습니다.
    이제 내부에서 가공을 통해서 화면에 보여주려고 하는데 문제가 생겼습니다 ㅠㅠ
    ---------------------------------
    xml 파일 요약??? 본 입니다.

    <?xml version="1.0"encoding="utf-8"standalone="yes"?>
    <ServiceResult>
    <comMsgHeader/>
    <msgHeader>
    <headerCd> 0 </headerCd> 
    <headerMsg> 정상적으로 처리되었습니다. </headerMsg>
    <itemCount> 0 </itemCount>
    </msgHeader>
    <msgBody>
    <itemList>
    <distance> 7767 </distance>
    <pathList> 
    <fid> 291030 </fid>
    <fname> 성북 </fname>
    <fx> 127.06148934414729 </fx>
    <fy> 37.673810520367776 </fy>
    <railLinkList>
    <railLinkId> 840 </railLinkId>
    </railLinkList>
    <railLinkList>
    <railLinkId> 222 </railLinkId>
    </railLinkList>
    쭉쭉쭉 몇개 반복
    <routeNm> 경원선 </routeNm>
    <tid> 창동 </tid>
    <tname> 창동 </tname>
    <tx> ~~~~~~~ </tx>
    <ty> ~~~~~~~ </ty>
    </pathList>
    <pathList>
    ... 반복
    </pathList>
    <time> 31 </time>
    </itemList>
    </msgBody>
    </ServiceResult>
    ----------------------------------------------------
    여기서 제가 원하는 정보는 거리(distance), 경로(pathList), 시간(time) 정보 입니다.
    여기서 경로 정보에는 시작점과 도착점의 id, 이름, x, y좌표가 있고, 
    railLinkList라는... 출발점과 도착점의 x,y 좌표에 따라서 갯수가 가변적으로 변화하는 내용이 들어가 있습니다.

    인터넷에 xml 파서와 관련된 예제를 봐도, depth가 1이고, 갯수가 가변적으로 늘어나는 경우도 없어서 바로 응용하여 사용하기가 매우 어렵습니다 ㅠ
    내일까지 완성이 되어야 하는 부분이어서... 이론상으로는 생각이 되어도 실제로 구현하려니까 막막하네요 ㅠㅠ 코드 쓰면서도 의구심이 들고...ㅠ
    조언 부탁드립니다!

    -----------------------------------------
    //XmlParser 20150715 추가
    private void PullParserFromXML(String data){
    boolean boolean_distance = false, boolean_itemList = false,
    //PathList
    boolean_pathList = false,
    boolean_fId = false,
    boolean_fName = false,
    boolean_fX = false, 
    boolean_fY = false,
    boolean_railLinkList = false,
    boolean_railLinkId = false,
    boolean_routeNm = false,
    boolean_tId = false,
    boolean_tName = false,
    boolean_tX = false,
    boolean_tY = false,
    //pathList end. 배열로 해줘야할듯
    boolean_time = false;
    //itemList 끝 
    boolean done = false;
    try {
    XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
    XmlPullParser parser = factory.newPullParser();
    parser.setInput(new StringReader(data));
    String sTag;
    int eventType = parser.getEventType();
    while (eventType != XmlPullParser.END_DOCUMENT){
    switch(eventType){
    case XmlPullParser.START_DOCUMENT : 
    subwayList = new ArrayList<SubwayData>(); break;
    case XmlPullParser.END_DOCUMENT : break;
    case XmlPullParser.START_TAG :
    sTag = parser.getName();
    if (sTag.equals("msgBody"));
    if (sTag.equals("itemList")){
    subwayData = new SubwayData(); // 객체 생성
    boolean_itemList = true;
    }
    if (sTag.equals("distance"))
    boolean_distance = true;
    if (sTag.equals("pathList"))
    subwayPathList = new ArrayList<SubwayPathList>(); //뭉텅이
    // subwayPath = new SubwayPathList();
    if (sTag.equals("fid"))
    boolean_fId = true;
    else if (sTag.equals("fname"))
    boolean_fName = true;
    else if (sTag.equals("fx"))
    boolean_fX = true;
    else if (sTag.equals("fy"))
    boolean_fY = true;
    /**
    * 일단 rail 부분은 파싱하지 말고 나머지가 정상적으로 되나 테스트를 하자.
    else if (sTag.equals("railLinkList")){
    railLinkList = new RailLinkList();
    while (sTag.equals("railLinkId")){
    boolean_railLinkId = true;
    } boolean_railLinkList = true;
    }
    */
    else if (sTag.equals("routeNm"))
    boolean_routeNm = true;
    else if (sTag.equals("tid"))
    boolean_tId = true;
    else if (sTag.equals("tname"))
    boolean_tName = true;
    else if (sTag.equals("tX"))
    boolean_tX = true;
    else if (sTag.equals("tY"))
    boolean_tY = true;
    if (sTag.equals("time"))
    boolean_time = true;
    break; //XmlPullParser.START_TAG case close
    case XmlPullParser.END_TAG :
    sTag = parser.getName();
    if (sTag.equalsIgnoreCase("itemList") && subwayData != null)
    if (sTag.equalsIgnoreCase("pathList") && subwayPathList != null)
    subwayPathList.add(subwayPath);
    subwayList.add(subwayData);
    break;
    case XmlPullParser.TEXT : 
    if (boolean_distance){
    subwayData.setDistance(parser.getText());
    boolean_distance = false;
    } else if (boolean_pathList){
    //? 추가해야할 것? 맨 마지막에 false 하자
    if (boolean_fId){
    // subwayData.setPathList(); how to ㅠㅠ 
    subwayPath.setfId(parser.getText());
    boolean_fId = true;
    } else if (boolean_fName){
    subwayPath.setfName(parser.getText());
    boolean_fName = true;
    } else if (boolean_fX){
    subwayPath.setfX(parser.getText());
    boolean_fX = true;
    } else if (boolean_fY){
    subwayPath.setfY(parser.getText());
    boolean_fY = true;
    } // railLinkList 추가해야해  
    else if (boolean_routeNm){
    subwayPath.setRouteNm(parser.getText());
    boolean_routeNm = true;
    } else if (boolean_tId){
    subwayPath.setTid(parser.getText());
    boolean_tId = true;
    } else if (boolean_tName){
    subwayPath.settName(parser.getText());
    boolean_tName = true;
    } else if (boolean_tX){
    subwayPath.settX(parser.getText());
    boolean_tX = true;
    } else if (boolean_tY){
    subwayPath.settY(parser.getText());
    boolean_tY = true;
    // subwayData.setPathList ?? 세팅하는게 필요할듯한데..
    boolean_pathList = false;
    } else if (boolean_time){
    subwayData.setTime(parser.getText());
    boolean_time = false; break;
    eventType = parser.next();
    }//switch close
    Log.i("xmlParser", subwayData.getDistance() + "" + subwayData.getPathList());
    TextView data1 = (TextView)findViewById(R.id.data1);
    TextView data2 = (TextView)findViewById(R.id.data2);
    TextView data3 = (TextView)findViewById(R.id.data3);
    data1.setText(subwayPath.getfName());
    data2.setText(subwayData.getDistance());
    data3.setText(subwayData.getPathList().get(0).gettName());
    }
            } catch(Exception ex) {
                   
            }
    }
    --------------------------------------------
    작성하다 만 코드입니다. 
    데이터의 큰 틀을 SubwayData라고 두면 그 내부의 변수인 distance와 time 값은 넣을 수 있습니다.
    그런데 이제 새로운 클래스인 SubwayPathList에서 객체를 생성하며 데이터를 담으면, 그 내용을 SubwayData에 담으려고 했는데..
    음.. 아무튼 TextView에 값이 제대로 담겼는지 확인하기 위해서 저렇게 임의로 코드를 넣어서 테스트해봤는데 결과가 나오지 않아요 ㅠㅠ 

    --------------------------------
    public class SubwayData {
    String distance;
    ArrayList<SubwayPathList> pathList; // 배열로 하는게 맞는지?
    String time;
    //getter setter 생략
    }
    class SubwayPathList {
    String fId;
    String fName;
    String fX, fY;
    RailLinkList railLinkList; // 이건 일단 제외하고 테스트했습니다. ㅠㅠ 어떻게 사용해야할까요?
    String routeNm;
    String tid;
    String tName;
    String tX, tY;
    //getter setter 생략
    }
    class RailLinkList {
    String railLinkId;
    //getter setter 생략
    }
    -------------------------------------------

    Logcat 입니다.

    07-15 22:16:27.307: W/ApplicationPackageManager(26472): getCSCPackageItemText()
    07-15 22:16:27.307: I/PersonaManager(26472): getPersonaService() name persona_policy
    07-15 22:16:27.377: I/dalvikvm(26472): Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.internal.widget.TintTypedArray.getChangingConfigurations
    07-15 22:16:27.377: W/dalvikvm(26472): VFY: unable to resolve virtual method 405: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
    07-15 22:16:27.377: D/dalvikvm(26472): VFY: replacing opcode 0x6e at 0x0002
    07-15 22:16:27.377: I/dalvikvm(26472): Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.internal.widget.TintTypedArray.getType
    07-15 22:16:27.377: W/dalvikvm(26472): VFY: unable to resolve virtual method 427: Landroid/content/res/TypedArray;.getType (I)I
    07-15 22:16:27.377: D/dalvikvm(26472): VFY: replacing opcode 0x6e at 0x0002
    07-15 22:16:27.417: I/dalvikvm(26472): Could not find method android.content.res.Resources.getDrawable, referenced from method android.support.v7.internal.widget.ResourcesWrapper.getDrawable
    07-15 22:16:27.417: W/dalvikvm(26472): VFY: unable to resolve virtual method 368: Landroid/content/res/Resources;.getDrawable (ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
    07-15 22:16:27.417: D/dalvikvm(26472): VFY: replacing opcode 0x6e at 0x0002
    07-15 22:16:27.417: I/dalvikvm(26472): Could not find method android.content.res.Resources.getDrawableForDensity, referenced from method android.support.v7.internal.widget.ResourcesWrapper.getDrawableForDensity
    07-15 22:16:27.417: W/dalvikvm(26472): VFY: unable to resolve virtual method 370: Landroid/content/res/Resources;.getDrawableForDensity (IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
    07-15 22:16:27.417: D/dalvikvm(26472): VFY: replacing opcode 0x6e at 0x0002
    07-15 22:16:27.467: I/Adreno-EGL(26472): <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build:  ()
    07-15 22:16:27.467: I/Adreno-EGL(26472): OpenGL ES Shader Compiler Version: E031.24.00.08+13
    07-15 22:16:27.467: I/Adreno-EGL(26472): Build Date: 03/20/14 Thu
    07-15 22:16:27.467: I/Adreno-EGL(26472): Local Branch: 0320_AU200_patches
    07-15 22:16:27.467: I/Adreno-EGL(26472): Remote Branch: 
    07-15 22:16:27.467: I/Adreno-EGL(26472): Local Patches: 
    07-15 22:16:27.467: I/Adreno-EGL(26472): Reconstruct Branch: 
    07-15 22:16:27.517: D/OpenGLRenderer(26472): Enabling debug mode 0
    07-15 22:16:37.597: W/System.err(26472): [DEBUG] GbaRequest - GbaRequest: Constructor Called 222 userAgent Apache-HttpClient/UNAVAILABLE (java 1.4)
    07-15 22:16:37.597: W/System.err(26472): [DEBUG] NafRequest - NafRequest: NafRequest constructor===useragent Apache-HttpClient/UNAVAILABLE (java 1.4)
    07-15 22:16:38.237: I/System.out(26472): AsyncTask #1 calls detatch()
    07-15 22:16:45.167: W/System.err(26472): [DEBUG] GbaRequest - GbaRequest: Constructor Called 222 userAgent Apache-HttpClient/UNAVAILABLE (java 1.4)
    07-15 22:16:45.167: W/System.err(26472): [DEBUG] NafRequest - NafRequest: NafRequest constructor===useragent Apache-HttpClient/UNAVAILABLE (java 1.4)
    07-15 22:16:45.737: I/System.out(26472): AsyncTask #2 calls detatch()
    07-15 22:17:01.287: W/System.err(26472): [DEBUG] GbaRequest - GbaRequest: Constructor Called 222 userAgent Apache-HttpClient/UNAVAILABLE (java 1.4)
    07-15 22:17:01.287: W/System.err(26472): [DEBUG] NafRequest - NafRequest: NafRequest constructor===useragent Apache-HttpClient/UNAVAILABLE (java 1.4)
    07-15 22:17:01.847: I/System.out(26472): AsyncTask #3 calls detatch()
    07-15 22:17:03.697: W/System.err(26472): [DEBUG] GbaRequest - GbaRequest: Constructor Called 222 userAgent Apache-HttpClient/UNAVAILABLE (java 1.4)
    07-15 22:17:03.697: W/System.err(26472): [DEBUG] NafRequest - NafRequest: NafRequest constructor===useragent Apache-HttpClient/UNAVAILABLE (java 1.4)
    07-15 22:17:04.247: I/System.out(26472): AsyncTask #4 calls detatch()


    이 게시물을 추천한 분들의 목록입니다.
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    23
    유기견 본 것 같아여 ㅠㅠ 뿌뿌빠뿌뿌 15/08/15 01:56 30 1
    22
    의약품 관련 api ) 추천해주실만한게 있나요?? [2] 본인삭제금지 뿌뿌빠뿌뿌 15/08/12 17:41 32 0
    21
    해시키 오류.. 어떻게 ㅎㅐ결해야하나요? [2] 뿌뿌빠뿌뿌 15/08/07 02:47 25 0
    20
    라인 소셜로그인... 채널 생성이 안되네요 ㅠㅠ 뿌뿌빠뿌뿌 15/08/06 06:33 31 0
    19
    android 페이스북 sdk 로그인 질문입니다. [6] 본인삭제금지 뿌뿌빠뿌뿌 15/08/04 07:10 31 0
    18
    android 구글맵 api 사용할 때, 한 화면에 두개의 지점.. [2] 뿌뿌빠뿌뿌 15/07/23 07:11 37 0
    17
    wgs84 좌표계 변환 질문입니다. [5] 본인삭제금지 뿌뿌빠뿌뿌 15/07/22 16:25 18 0
    16
    진짜 간절한 마음에서 올린 질문글인데 [10] 뿌뿌빠뿌뿌 15/07/16 00:31 61 0
    android xml 파싱 질문드립니다!!! ㅠ_ㅠ 능력자분들 도와주세요 [8] 본인삭제금지 뿌뿌빠뿌뿌 15/07/15 22:19 28 0
    14
    영만아찌 보는데 왜 눙물날것같져 ㅠㅠ 뿌뿌빠뿌뿌 15/07/12 21:56 62 0
    13
    지금 김영만아저씨 방 못들어가나요? 어떻게 들어가나요?ㅠㅠ [14] 뿌뿌빠뿌뿌 15/07/12 21:50 326 0
    12
    제발도와주세요 유유ㅠㅠ 공공데이터포털 api.... rest xml 사용 [4] 본인삭제금지 뿌뿌빠뿌뿌 15/07/12 20:08 30 0
    10
    음 8만원짜리 여대생 생일선물 뭐가 좋을까여? [6] 뿌뿌빠뿌뿌 15/07/08 03:35 62 0
    9
    챔프 폭을 늘리고싶어요 뉴뉴ㅠㅠ [12] 뿌뿌빠뿌뿌 15/06/15 04:01 110 0
    8
    15년 전에 봤던 애니매이션 찾아주세요!!ㅠㅠ [6] 뿌뿌빠뿌뿌 15/06/13 19:30 67 0
    7
    그나저나 일하려고 컴퓨터 켰는데 [3] 뿌뿌빠뿌뿌 15/06/13 05:35 59 0
    6
    과외하는데양 [11] 뿌뿌빠뿌뿌 15/06/13 05:29 77 0
    5
    쟈스민 차를 끓여왔는데 [19] 뿌뿌빠뿌뿌 15/06/13 05:16 51 1
    4
    저는 스르륵 아재라는 말이 [13] 뿌뿌빠뿌뿌 15/06/13 05:04 86 0
    3
    다이어트하는데 [3] 뿌뿌빠뿌뿌 15/06/13 04:45 37 0
    2
    사실 오유는 [3] 뿌뿌빠뿌뿌 15/06/13 04:36 36 0
    1
    지금 막 가입했어여 안녕하세여 :-) [29] 뿌뿌빠뿌뿌 15/06/13 04:16 63 6
    [1] [2] [3] [4] [5]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈