try {
// 1 获得xml文档
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser pullParser = factory.newPullParser(); // Parser
// 给pull解析对象设置xml文档
pullParser.setInput(getAssets().open("data.xml"), "utf-8"); //地址根据自己修改
// 2 获得当前文档类型
int type = pullParser.getEventType(); // End_docum
Person p = null;
// 如果没有到文件的结束标签,依次解析
while (type != XmlPullParser.END_DOCUMENT) { //END_DOCUMENT:文档结束标记 </persons>
// 获取标签的名字
String name = pullParser.getName(); //标签的名字 : persons null person name age
//判断获取的 person 是开始还结束
switch (type) {
case XmlPullParser.START_TAG:
if (name.equals("person")) {
p = new Person();
// 获取属性
String value = pullParser.getAttributeValue(0);
p.setId(Integer.parseInt(value));
} else if (name.equals("name")) {
String value = pullParser.nextText(); // 把值赋给
p.setName(value);
} else if (name.equals("age")) {
String value = pullParser.nextText(); // 把值赋给
p.setAge(Integer.parseInt(value));
}
break;
case XmlPullParser.END_TAG:
//读取到</person>
if (name.equals("person")) {
ps.add(p);
}
default:
break;
}
// 向下移动
type = pullParser.next();
}
Log.d("TAG", "集合:"+ps);
} catch (Exception e) {
e.printStackTrace();
}
// 1 获得xml文档
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser pullParser = factory.newPullParser(); // Parser
// 给pull解析对象设置xml文档
pullParser.setInput(getAssets().open("data.xml"), "utf-8"); //地址根据自己修改
// 2 获得当前文档类型
int type = pullParser.getEventType(); // End_docum
Person p = null;
// 如果没有到文件的结束标签,依次解析
while (type != XmlPullParser.END_DOCUMENT) { //END_DOCUMENT:文档结束标记 </persons>
// 获取标签的名字
String name = pullParser.getName(); //标签的名字 : persons null person name age
//判断获取的 person 是开始还结束
switch (type) {
case XmlPullParser.START_TAG:
if (name.equals("person")) {
p = new Person();
// 获取属性
String value = pullParser.getAttributeValue(0);
p.setId(Integer.parseInt(value));
} else if (name.equals("name")) {
String value = pullParser.nextText(); // 把值赋给
p.setName(value);
} else if (name.equals("age")) {
String value = pullParser.nextText(); // 把值赋给
p.setAge(Integer.parseInt(value));
}
break;
case XmlPullParser.END_TAG:
//读取到</person>
if (name.equals("person")) {
ps.add(p);
}
default:
break;
}
// 向下移动
type = pullParser.next();
}
Log.d("TAG", "集合:"+ps);
} catch (Exception e) {
e.printStackTrace();
}