xml
<members_info>
	<member name="hong gil dong" age="20">
			<hobby1>수영</hobby1>
			<hobby2>요리</hobby2>
			<no>1</no>
			<id>abcd</id>
			<pw>1234</pw>
	</member>
	<member name="hong gil soon" age="30">
			<hobby1>독서</hobby1>
			<hobby2>등산</hobby2>
			<no>2</no>
			<id>efgh</id>
			<pw>5678</pw>
	</member>
</members_info>
class MainActivity
package com.example.choi.mystudy26_2;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
    final static String TAG ="MainActivity";
    EditText editText;
    Button button;
    List<Member> list;
    Member member;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editText=(EditText)findViewById(R.id.editText);
        button=(Button)findViewById(R.id.button);
        list=new ArrayList<>();
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                parser();
                for(Member member : list){
                    editText.append(" 이름 : "  + member.getName());
                    editText.append(" 나이 : "  +member.getAge());
                    editText.append(" 아이디 " +member.getId());
                    editText.append(" 취미1 :" + member.getHobby1());
                    editText.append(" 취미2:  " + member.getHobby2());
                    editText.append(" 번호 : " + member.getNo());
                    editText.append(" 패스워드 " + member.getPw());
                    editText.append("\n******************************\n");
                }
            }
        });
    }
    private void parser(){
        Log.i(TAG, "parser()");
        InputStream is =getResources().openRawResource(R.raw.xmlex);
        InputStreamReader isr =new InputStreamReader(is);
        BufferedReader reader=new BufferedReader(isr);
        XmlPullParserFactory factory=null;
        XmlPullParser xmlPullParser=null;
        try {
            factory=XmlPullParserFactory.newInstance();
            xmlPullParser=factory.newPullParser();
            xmlPullParser.setInput(reader);
            int eventType=xmlPullParser.getEventType();
            while (eventType!=XmlPullParser.END_DOCUMENT){
                switch (eventType){
                    case XmlPullParser.START_DOCUMENT:
                        Log.i(TAG, "Start Document");
                        break;
                    case XmlPullParser.START_TAG:
                        Log.i(TAG, "Start TAG :" + xmlPullParser.getName());
                        if(xmlPullParser.getName().equals("member")){
                            member=new Member();
                            int count =xmlPullParser.getAttributeCount();
                            for(int i=0; i<count; i++){
                                Log.i(TAG, "Start TAG AttribuetName(" +i +"): "
                                        + xmlPullParser.getAttributeName(i));
                                Log.i(TAG, "Start TAG AttributeValue (" + i +") :"
                                        + xmlPullParser.getAttributeName(i));
                               member.setName(xmlPullParser.getAttributeValue(0));
                               member.setAge(xmlPullParser.getAttributeValue(1));
                            }
                        }
                        if(xmlPullParser.getName().equals("hobby1")){
                              member.setHobby1(xmlPullParser.nextText());
                        }
                        if(xmlPullParser.getName().equals("hobby2")){
                            member.setHobby2(xmlPullParser.nextText());
                        }
                        if(xmlPullParser.getName().equals("no")){
                           member.setNo(xmlPullParser.nextText());
                        }
                        if(xmlPullParser.getName().equals("id")){
                            member.setId(xmlPullParser.nextText());
                        }
                        if(xmlPullParser.getName().equals("pw")){
                            member.setPw(xmlPullParser.nextText());
                            list.add(member);
                        }
                        break;
                    case XmlPullParser.END_TAG:
                        Log.i(TAG, "End TAG : " + xmlPullParser.getName());
                        break;
                    case XmlPullParser.TEXT:
                        Log.i(TAG, "TEXT : " +xmlPullParser.getText());
                        break;
                    case XmlPullParser.END_DOCUMENT:
                        break;
                }
                eventType =xmlPullParser.next();
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try {
                if(reader!=null)reader.close();
                if(isr!=null)isr.close();
                if(is!=null)is.close();
            }catch (Exception e2){
                e2.printStackTrace();
            }
        }
    }
}
class Member
package com.example.choi.mystudy26_2;
import java.io.Serializable;
/**
 * Created by choi on 2017-03-14.
 */
public class Member implements Serializable {
    private String name;
    private String age;
    private String hobby1;
    private String hobby2;
    private String no;
    private String id;
    private String pw;
    public Member() {
    }
    public Member(String name, String age, String hobby1, String hobby2, String no, String id, String pw) {
        this.name = name;
        this.age = age;
        this.hobby1 = hobby1;
        this.hobby2 = hobby2;
        this.no = no;
        this.id = id;
        this.pw = pw;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    public String getHobby1() {
        return hobby1;
    }
    public void setHobby1(String hobby1) {
        this.hobby1 = hobby1;
    }
    public String getHobby2() {
        return hobby2;
    }
    public void setHobby2(String hobby2) {
        this.hobby2 = hobby2;
    }
    public String getNo() {
        return no;
    }
    public void setNo(String no) {
        this.no = no;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getPw() {
        return pw;
    }
    public void setPw(String pw) {
        this.pw = pw;
    }
    @Override
    public String toString() {
        return "Member{" +
                "name='" + name + '\'' +
                ", age='" + age + '\'' +
                ", hobby1='" + hobby1 + '\'' +
                ", hobby2='" + hobby2 + '\'' +
                ", no='" + no + '\'' +
                ", id='" + id + '\'' +
                ", pw='" + pw + '\'' +
                '}';
    }
}
R.layout.activity_main
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.choi.mystudy26_2.MainActivity">
    <Button
        android:text="xml 파싱"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:id="@+id/button"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:textColor="@android:color/background_light"
        android:background="@color/colorAccent" />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:inputType="textMultiLine"
        android:ems="10"
        android:id="@+id/editText"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_above="@+id/button" />
</RelativeLayout>















댓글 ( 4)  
댓글 남기기