—————MainActivity代码—————
public class MainActivity extends Activity {
private List<PersonBean> list;
private PersonBean personBean;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//点击开始解析pull
public void getdata(View v){
try {
//得到XML文件
InputStream open = getAssets().open("persons.xml");
//得到解析工厂
XmlPullParserFactory newInstance = XmlPullParserFactory.newInstance();
//得到解析齐
XmlPullParser newPullParser = newInstance.newPullParser();
//将文件交给解析器进行解析 1.当前要解析的XML文件 2.格式
newPullParser.setInput(open, "utf-8");
//得到事件类型
int eventType = newPullParser.getEventType();
//事件的类型 不遇到结束文档 就不停止
while (eventType!=XmlPullParser.END_DOCUMENT) {
//判断当前eventType遇到的是那个节点
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
//初始化数据
list = new ArrayList<PersonBean>();
break;
case XmlPullParser.START_TAG://开始标签
//如果遇到person创建对象
if(newPullParser.getName().equals("person")){
personBean = new PersonBean();
}else if(newPullParser.getName().equals("name")){
//得到值 存入对象
String name = newPullParser.nextText();//得到当前的数据
personBean.setName(name);
}else if(newPullParser.getName().equals("age")){
String age = newPullParser.nextText();
personBean.setAge(age);
}
break;
case XmlPullParser.END_TAG://结束标签
//如果遇到的是结束标签person 那么就将对象对人集合
if(newPullParser.getName().equals("person")){
list.add(personBean);
}
break;
default:
break;
}
//让eventType向下读取
eventType = newPullParser.next();
}
Log.i("TAG", list.size()+"");
//作业2:完全掌握 将数据展示在list view上
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
————–JavaBean代码—————-
public class PersonBean {
private String name;
private String age;
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;
}
}