xml파일이 있을때 XmlPullPaser를 이용하여 파싱을 해보도록 하겠습니다.

연습단계라고 생각하시면 됩니다. 보통은 웹주소를 통해 xml값을 얻겠죠~?


res/xml/board.xml 파일을 생성했습니다. xml은 폴더구요


<?xml version="1.0" encoding="utf-8"?>

<board>
    <content name="유재석" />
    <content name="박명수" />
    <content name="정준하" />
    <content name="정형돈" />
    <content name="노홍철" />
    <content name="하하" />
    <content name="" />
</board>


MainActivity.java

package com.example.android_test1;

import java.util.ArrayList;

import org.xmlpull.v1.XmlPullParser;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends ListActivity {

	ArrayList<String> items = new ArrayList<String>();
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
				
		try{
			XmlPullParser parser = getResources().getXml(R.xml.board);
			
			while(parser.getEventType() != XmlPullParser.END_DOCUMENT) {
				if(parser.getEventType() == XmlPullParser.START_TAG) {
					if(parser.getName().equals("content")) {
						items.add(parser.getAttributeValue(0));
					}
				}
				parser.next();
			}
		}catch(Throwable t) {
			
		}
		
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
		setListAdapter(adapter);
	}

	public void onListItemClick(ListView parent, View v, int position, long id) {
		Toast.makeText(this, items.get(position).toString(), Toast.LENGTH_LONG ).show();
	}

}


String 타입의 ArrayList인items를 생성했습니다.

에러가 날 수 있는 부분은 항상 try~catch문을 사용합니다.

XmlPullParser를 통해 board.xml을 읽어서

attribute값을 읽어옵니다. 그 값을 items에 차례차례 넣는것을 반복합니다.

ListView에 값을 넣기위해 Adapter를 설정하고, 클릭시 반응할 메소드를 생성합니다.





잘 되네요~


실전은 좀 더 복잡하고 길어요~




Posted by 세이나린
,