
package com.example.pull_demo;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends Activity {
private List<Student> list;
private Student student;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//点击开始进行解析
public void getpull(View v){
//得到文件
try {
InputStream inputStream = getAssets().open("NewFile.xml");
//得到解析工厂
XmlPullParserFactory newInstance = XmlPullParserFactory.newInstance();
//通过解析工厂的到解析器
XmlPullParser parser = newInstance.newPullParser();
//开始解析 1.得到文件 2.编码格式
parser.setInput(inputStream, "UTF-8");
//得到事件的类型
int eventType = parser.getEventType();
//遇到文档的结束 就停止
while (eventType != XmlPullParser.END_DOCUMENT) {
//判断遇到的事件
String parserName = parser.getName();
switch (eventType) {
case XmlPullParser.START_DOCUMENT: //开始文档
list = new ArrayList<Student>();
break;
case XmlPullParser.START_TAG: //开始节点 只要是开始的节点 都能用它
if(parserName.equals("student")){
student = new Student();
//通过下标进行得值
String id = parser.getAttributeValue(0);
String group = parser.getAttributeValue(1);
student.setId(id);
student.setGroup(group);
}else if(parserName.equals("name")){
//.nextText();得到标签values值
String name = parser.nextText();
student.setName(name);
}else if(parserName.equals("sex")){
String sex = parser.nextText();
student.setSex(sex);
}else if(parserName.equals("age")){
String age = parser.nextText();
student.setAge(age);
}else if(parserName.equals("email")){
String email = parser.nextText();
student.setEmail(email);
}else if(parserName.equals("birthday")){
String birthday = parser.nextText();
student.setBirthday(birthday);
}else if(parserName.equals("memo")){
String memo = parser.nextText();
student.setMemo(memo);
}
break;
case XmlPullParser.END_TAG: //结束节点
if(parserName.equals("student")){
list.add(student);
}
break;
default:
break;
}
//解析完一行 向下继续读取
eventType = parser.next();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.i("TAG", list.size()+"===="+list.get(0).toString());
}
}