<contacts>
<user id="1" uname="张三">
<phone>010895430987</phone>
<mobil>1356789034</mobil>
<addr>北京市海淀区上地软件园南路57号</addr>
<email>zhangsan@163.com</email>
<work>群众演员</work>
</user>
<user id="2" uname="马苏">
<phone>010895430966</phone>
<mobil>139012345678</mobil>
<addr>北京市海淀区上地五街</addr>
<email>masu@263.com</email>
<work>二级演员</work>
</user>
<user id="3" uname="孙俪">
<phone>01087889988</phone>
<mobil>13903456666</mobil>
<addr>北京市海淀区上地软件园南路57号</addr>
<email>sunli@sina.com</email>
<work>一级演员</work>
</user>
</contacts>
private void parserPullXml() {
boolean flag=true;
XmlPullParser parser = Xml.newPullParser();
try {
//设置要解析文件的路径
parser.setInput(getAssets().open("contacts.xml"), "utf-8");
int event = parser.getEventType();//五种事件类型
while(flag){
switch (event) {
case XmlPullParser.START_DOCUMENT:
//开始文档的解析
userlist = new ArrayList<>();
break;
case XmlPullParser.END_DOCUMENT:
//结束文档解析
flag=false;//让循环结束
break;
case XmlPullParser.START_TAG:
name = parser.getName();
if(name.equals("user")){
u = new User();
u.setId(parser.getAttributeValue(null, "id"));
u.setUname(parser.getAttributeValue(null, "uname"));
}
break;
case XmlPullParser.END_TAG:
//结束节点解析
name=parser.getName();
if(name.equals("user")){
userlist.add(u);
}
//清空name
name="";
break;
case XmlPullParser.TEXT:
//文档解析
if(name.equals("phone")){
u.setPhone(parser.getText());
}
if(name.equals("mobil")){
u.setMobil(parser.getText());
}
if(name.equals("addr")){
u.setAddr(parser.getText());
}
if(name.equals("email")){
u.setEmail(parser.getText());
}
if(name.equals("work")){
u.setWork(parser.getText());
}
break;
}
//让其解析下一行 若忘记写则不会接着解析
event=parser.next();
}
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}