2014-11-05 8 views
0

서버에서 XML 데이터 가져 오기 android 응용 프로그램을 만들고 XML 데이터를 개체로 구문 분석하려고합니다. 내가 5 목록에 데이터 아래 구문 분석 할 :안드로이드 응용 프로그램에서 XML을 개체로 구문 분석

private List<TaskScheduleDto> TaskShedule; 
private List<ContractOptionInListDto> ContractOptionInList; 
private List<ContractOptionOutListDto> ContractOptionOutList; 
private List<OutsourceListDto> OutsourceList; 
private List<CheckListDto> CheckList; 

이 내 XML 데이터입니다.

<?xml version="1.0" encoding="utf-8"?> 
<Response> 
    <ReturnCode>0</ReturnCode> 
    <Message></Message> 
    <Result> 
     <Task> 
      <TaskShedule> 
       <building_id>1</building_id> 
       <room_id>12</room_id> 
       <building_name>Gacon</building_name> 
       <room_name>Lala</room_name> 
       <management_area_name>Heocon</management_area_name> 
      </TaskShedule> 

      <ContractOptionInList> 
       <ContractOption> 
        <task_shedule_id>2</task_shedule_id> 
        <contract_option_id>2</contract_option_id> 
        <task_kbn>2</task_kbn> 
        <option_name>2</option_name> 
        <status>1</status> 
       </ContractOption> 
      </ContractOptionInList> 

      <ContractOptionOutList> 
       <ContractOption> 
        <task_shedule_id>2</task_shedule_id> 
        <contract_option_id>2</contract_option_id> 
        <task_kbn>2</task_kbn> 
        <option_name>2</option_name> 
        <status>1</status> 
       </ContractOption> 
      </ContractOptionOutList> 

      <Outsourece> 
        <task_shedule_id>2</task_shedule_id> 
        <outsource_id>2</outsource_id> 
        <purpose>2</purpose> 
        <memo>2</memo> 
        <fixed_date>1</fixed_date> 
        <date_type>2</date_type> 
        <contract_option_id>2</contract_option_id> 
        <variable_count>2</variable_count> 
        <status>2</status> 
      </Outsourece> 

      <CheckList> 
       <task_shedule_id></task_shedule_id> 
       <Group> 
        <code>123</code> 
        <name>Heoheo</name> 
        <CheckItem> 
         <check_item>Lalala</check_item> 
         <check_detail>9987</check_detail> 
         <status>1</status> 
         <code>011</code> 
        </CheckItem> 
       </Group> 
      </CheckList> 
     </Task> 
    </Result> 
</Response> 

어떻게 할 수 있습니까? 많은 도움을 주셨습니다. 감사.

답변

0

귀하의 요구 사항에 따라이 작업을 수행하십시오. 그러나이 작업을 완료하려면 더 추가하십시오. 이것이 당신을 도울 수 있기를 희망하고, 각 클래스에 setter 메소드를 추가하십시오. bcz 여기에 setter 메소드를 사용하고 있습니다.

예 :
public void setName (String name) { this.name = name; 여기 }

import java.io.FileInputStream; 
import java.io.IOException; 
import org.xmlpull.v1.XmlPullParser; 
import org.xmlpull.v1.XmlPullParserException; 
import org.xmlpull.v1.XmlPullParserFactory; 

import android.provider.Telephony.Mms.Addr; 
import android.util.Log; 

public class MyModeXMLParser { 


    private List<TaskScheduleDto> TaskShedule; 
    private List<ContractOptionInListDto> ContractOptionInList; 
    private List<ContractOptionOutListDto> ContractOptionOutList; 
    private List<OutsourceListDto> OutsourceList; 
    private List<CheckListDto> CheckList; 



    public void parse(FileInputStream is) { 
     XmlPullParserFactory factory = null; 
     XmlPullParser parser = null; 
     try { 
      factory = XmlPullParserFactory.newInstance(); 
      factory.setNamespaceAware(true); 
      parser = factory.newPullParser(); 
      parser.setInput(is, null); 

      int eventType = parser.getEventType(); 

      while (eventType != XmlPullParser.END_DOCUMENT) { 

       String tagname = parser.getName(); 
       switch (eventType) { 

       case XmlPullParser.START_TAG: 
//   create the objects for classes when getting a class name as open tag 

               if (tagname.equalsIgnoreCase("TaskShedule")) 
               { taskScheduleDto = new TaskScheduleDto(); 

               } 

               else if (tagname.equalsIgnoreCase("ContractOptionInList")) 
               { contractOptionInListDto = new ContractOptionInListDto(); 

               } 

               else if (tagname.equalsIgnoreCase("ContractOptionOutList")) 
               { contractOptionOutListDto = new ContractOptionOutListDto(); 

               } 

               else if (tagname.equalsIgnoreCase("Outsourece")) 
               { outsourceListDto = new OutsourceListDto(); 

               } 

               else if (tagname.equalsIgnoreCase("CheckList")) 
               { checkListDto = new CheckListDto(); 

               } 

               break; 

       case XmlPullParser.TEXT:   
// GETTING TEXT ENCLOSED BY ANY TAG 
               text = parser.getText();      
               break; 

       case XmlPullParser.END_TAG:  if (tagname.equalsIgnoreCase("TaskShedule")) 
               { 
//   ADD THE OBJECT TO LIST WHILE GETTING THE END TAG 
                TaskShedule.add(taskScheduleDto); 

               } 

//   SET THE VALUE OF EACH MEMBERS OF THE CLASS 
                else if (tagname.equalsIgnoreCase("building_id")) { 
                 taskScheduleDto.setBuildingID(text); 
                } 
                else if (tagname.equalsIgnoreCase("room_id>")) { 
                 taskScheduleDto.setRoomID(text); 
                } 
                else if (tagname.equalsIgnoreCase("building_name")) { 
                 taskScheduleDto.setBuildingName(text); 
                } 
                else if (tagname.equalsIgnoreCase("room_name")) { 
                 taskScheduleDto.setRoomName(text); 
                } 
                else if (tagname.equalsIgnoreCase("management_area_name")) { 
                 taskScheduleDto.setManagmentAreaName(text); 
                } 


               else if (tagname.equalsIgnoreCase("ContractOptionInList")) 
               { ContractOptionInList.add(contractOptionInListDto); 

               } 

//    SET THE VALUE OF EACH MEMBERS OF THE CLASS 
//   replace it with your required! 
//             else if (tagname.equalsIgnoreCase("building_id")) { 
//             taskScheduleDto.setBuildingID(text); 
//             } 
//             else if (tagname.equalsIgnoreCase("room_id>")) { 
//              taskScheduleDto.setRoomID(text); 
//             } 
//             else if (tagname.equalsIgnoreCase("building_name")) { 
//              taskScheduleDto.setBuildingName(text); 
//             } 
//             else if (tagname.equalsIgnoreCase("room_name")) { 
//              taskScheduleDto.setRoomName(text); 
//             } 
//             else if (tagname.equalsIgnoreCase("management_area_name")) { 
//              taskScheduleDto.setManagmentAreaName(text); 
//             } 


               else if (tagname.equalsIgnoreCase("ContractOptionOutList")) 
               { ContractOptionOutList.add(contractOptionOutListDto); 

               } 

//    SET THE VALUE OF EACH MEMBERS OF THE CLASS 
//   replace it with your required! 
//             else if (tagname.equalsIgnoreCase("building_id")) { 
//             taskScheduleDto.setBuildingID(text); 
//             } 
//             else if (tagname.equalsIgnoreCase("room_id>")) { 
//              taskScheduleDto.setRoomID(text); 
//             } 
//             else if (tagname.equalsIgnoreCase("building_name")) { 
//              taskScheduleDto.setBuildingName(text); 
//             } 
//             else if (tagname.equalsIgnoreCase("room_name")) { 
//              taskScheduleDto.setRoomName(text); 
//             } 
//             else if (tagname.equalsIgnoreCase("management_area_name")) { 
//              taskScheduleDto.setManagmentAreaName(text); 
//             } 



               else if (tagname.equalsIgnoreCase("Outsourece")) 
               { OutsourceList.add(outsourceListDto); 

               } 

//    SET THE VALUE OF EACH MEMBERS OF THE CLASS 
//   replace it with your required! 
//             else if (tagname.equalsIgnoreCase("building_id")) { 
//             taskScheduleDto.setBuildingID(text); 
//             } 
//             else if (tagname.equalsIgnoreCase("room_id>")) { 
//              taskScheduleDto.setRoomID(text); 
//             } 
//             else if (tagname.equalsIgnoreCase("building_name")) { 
//              taskScheduleDto.setBuildingName(text); 
//             } 
//             else if (tagname.equalsIgnoreCase("room_name")) { 
//              taskScheduleDto.setRoomName(text); 
//             } 
//             else if (tagname.equalsIgnoreCase("management_area_name")) { 
//              taskScheduleDto.setManagmentAreaName(text); 
//             } 

               else if (tagname.equalsIgnoreCase("CheckList")) 
               { CheckList.add(checkListDto); 


//            SET THE VALUE OF EACH MEMBERS OF THE CLASS 
//            replace it with your required! 
//                      else if (tagname.equalsIgnoreCase("building_id")) { 
//                      taskScheduleDto.setBuildingID(text); 
//                      } 
//                      else if (tagname.equalsIgnoreCase("room_id>")) { 
//                       taskScheduleDto.setRoomID(text); 
//                      } 
//                      else if (tagname.equalsIgnoreCase("building_name")) { 
//                       taskScheduleDto.setBuildingName(text); 
//                      } 
//                      else if (tagname.equalsIgnoreCase("room_name")) { 
//                       taskScheduleDto.setRoomName(text); 
//                      } 
//                      else if (tagname.equalsIgnoreCase("management_area_name")) { 
//                       taskScheduleDto.setManagmentAreaName(text); 
//                      } 
               } break; 

       default:      break; 
       } 


       eventType = parser.next(); 

      } 

     } catch (XmlPullParserException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

    } 
} 
당신이 XML Pullparser 참조 할 수

및 샘플 코드 : http://theopentutorials.com/tutorials/android/xml/android-simple-xmlpullparser-tutorial/