안드로이드

 

 

 

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>

 

 

 

 

 

 

 

 

about author

PHRASE

Level 60  머나먼나라

바늘 구멍으로 하늘 보기 , (사물의 전체를 보지 못하는) 시야가 좁은 관찰 태도를 비유하여 이르는 말.

댓글 ( 4)

댓글 남기기

작성