본문 바로가기

Computer Science/Android

안드로이드 xml 파싱

적당히 타입 맞춰서 사용하면 됩니다.


--------------------------  data.java ------------------------------

public class Data {

String id;

String fname;

String aname;

String cname;

String x1, y1;

}

------------------------ parsing.java -----------------------------------

public class parsing {

public parsing(String url, ArrayList<Data> DataList){

try{

URL text=new URL(url);

  XmlPullParserFactory factory = XmlPullParserFactory.newInstance();

  factory.setNamespaceAware(true);

  XmlPullParser parser=factory.newPullParser();

  parser.setInput(text.openStream(), null);

  int parserEvent = parser.getEventType();

  

  String tag;

  // --------------  태그 부분 --------------------

  boolean id = false, fName = false, aName = false, cName = false, x1=false, y1=false;

  // --------------------------------------------

  while (parserEvent != XmlPullParser.END_DOCUMENT) { 

   switch (parserEvent) {

   

   case XmlPullParser.TEXT:  // 데이터 저장

    tag = parser.getName();

    if (id){

    DataList.add(new Data());

    DataList.get(DataList.size()-1).id=parser.getText();

    }else if (fName) {

     DataList.get(DataList.size()-1).fname=parser.getText();

    }else if (aName) {

     DataList.get(DataList.size()-1).aname=parser.getText();

    }else if (cName){

    DataList.get(DataList.size()-1).cname=parser.getText();

    }else if (x1){

    DataList.get(DataList.size()-1).x1=parser.getText();  

}else if (y1){

    DataList.get(DataList.size()-1).y1=parser.getText();  

}

    

    break;

    

   case XmlPullParser.END_TAG:  // 태그 끝

    tag = parser.getName();

    if (tag.compareTo("POI_ID") == 0) {  

     id = false;

    } else if (tag.compareTo("FNAME") == 0) { 

     fName = false;

    } else if (tag.compareTo("ANAME") == 0) {

     aName = false;

    } else if (tag.compareTo("CNAME") == 0) {

 cName = false;

} else if (tag.compareTo("CENTER_X1") == 0) {

 x1 = false;

} else if (tag.compareTo("CENTER_Y1") == 0) {

 y1 = false;

     }

    

    break;

    

   case XmlPullParser.START_TAG: // 태그 시작

    tag = parser.getName();

    

    if (tag.compareTo("POI_ID") == 0) {  

     id = true;

    } else if (tag.compareTo("FNAME") == 0) { 

     fName = true;

    } else if (tag.compareTo("ANAME") == 0) {

     aName = true;

    } else if (tag.compareTo("CNAME") == 0) {

 cName = true;

} else if (tag.compareTo("CENTER_X1") == 0) {

 x1 = true;

} else if (tag.compareTo("CENTER_Y1") == 0) {

 y1 = true;

     }

    break;

   }

   parserEvent = parser.next();

  }

 } catch (Exception e) {

  Log.e("dd", "Error in network call", e);

 }

}

}


'Computer Science > Android' 카테고리의 다른 글

[펌] 안드로이드 db 포함방법  (0) 2012.07.13
db 만들기  (0) 2012.07.13
네이버 모바일맵 띄우기  (0) 2012.07.13
서울시 open api 작은 팁!!  (0) 2012.07.09
이클립스 단축키 모음  (0) 2012.05.22