package app.app1;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class MainActivity extends Activity {
private static final String TAG = "TAG";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i(TAG, "parser()");
//XML 파싱
//R.raw에 token파일을 만들어서 token파일에 적혀 있는 정보를 읽어오기
InputStream inputStream = getResources().openRawResource(R.raw.token);
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferReader = new BufferedReader(inputStreamReader);
StringBuffer stringBuffer = new StringBuffer();
String line = null;
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); // XmlPullParserFactory 객체 생성
XmlPullParser parser = factory.newPullParser(); // XmlPullParser 객체 생성
parser.setInput(bufferReader); //XmlPullParser에 Reader객체 넣기
int eventType = parser.getEventType(); //tag의 이벤트? (시작, 끝 등등)구분하기 위함
while(eventType != parser.END_DOCUMENT){//xml파일의 끝을 읽기까지 반복
switch (eventType){
case XmlPullParser.START_DOCUMENT: //다큐먼트 시작일 때
break;
case XmlPullParser.START_TAG:
Log.i(TAG, parser.getName());
if(parser.getName().equals("document")){
int count = parser.getAttributeCount(); //"documnet"하위의 속성? 의 갯수를 반환한다.
Log.i(TAG, "parser.getAttributeCount() : " + count);
for(int i = 0; i<count; i++){
Log.i(TAG, parser.getAttributeName(i));
Log.i(TAG, parser.getAttributeValue(i));
}
}
break;
case XmlPullParser.END_TAG:
Log.i(TAG, "END_TAG : " + parser.getName());
break;
case XmlPullParser.TEXT:
Log.i(TAG, parser.getText()); //읽다가 TEXT가 나올 경우 TEXT 쓰기
break;
}
eventType = parser.next(); //parser가 다음을 가르키게 하기
}
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(bufferReader!=null)
bufferReader.close();
if(inputStreamReader!= null)
inputStreamReader.close();
if(inputStream!=null)
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
자바 전체 코드와 xml 정보가 저장되어 있는 파일
'안드로이드+자바' 카테고리의 다른 글
안드로이드) 자기 휴대폰에 있는 센서 알아보는 코드! (0) | 2017.01.10 |
---|---|
안드로이드 입력다하고 엔터치면 키보드 숨기는 코드 (0) | 2017.01.10 |
안드로이드 StringTokenizer으로 파싱하는 간단한 코드 (0) | 2017.01.08 |
안드로이드 디바이스 모니터 실행 에러 뜰 때(device monitor error) (1) | 2017.01.08 |
문story) 안드로이드 BroadcastReceiver 사용하는 간단한 코드 (0) | 2017.01.07 |
댓글