//得到读取的方法
public List<Person> getList(){
List<Person> ls=new ArrayList<Person>();
//获取pull解析的解析器
XmlPullParser parser = Xml.newPullParser();
try {
* 解析器parser以第二个参数:inputEncoding 方式, 解析第一个参数:inputStream 里的内容
File file = new File(Environment.getExternalStorageDirectory(),"data.xml");
FileInputStream is = new FileInputStream(file);
设置解析器的读取来源以及读取方式
parser.setInput(is, "utf-8");
//得到事件的类型
int type = parser.getEventType();
/** 循环解析
//如果事件类型不是结束文档,进行循环解析
while(type!=parser.END_DOCUMENT){
//得到节点的名字
String tagName = parser.getName();
//根据事件类型选择
switch (type) {
//选择的是开始标签
case XmlPullParser.START_TAG:
if ("person".equals(tagName)) {
p = new Person();
}//判断节点名字
else if ("name".equals(tagName)) {
p.setName(parser.nextText());
}else if ("age".equals(tagName)) {
p.setAge(parser.nextText());
}
break;
//当选择的是结束标签
case XmlPullParser.END_TAG:
if ("person".equals(tagName)) {
ls.add(p);
//添加集合后,把对象置空, 在循环
p=null;
}
break;
}
//进行下一个事件类型,再次循环
type = parser.next();
}
} catch (Exception e) {
}
return ls;
}