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)
댓글 남기기