xml文件
<?xml version="1.0" encoding="utf-8"?>
<Smart>
<UserList>
<user id="0">
<Name>张三</Name>
<sex>女</sex>
<age>20</age>
<interest>唱歌</interest>
</user>
<user id="1">
<Name>李四</Name>
<sex>男</sex>
<age>22</age>
<interest>rap</interest>
</user>
<user id="2">
<Name>王五</Name>
<sex>男</sex>
<age>24</age>
<interest>篮球</interest>
</user>
</UserList>
</Smart>
实体类
public class UserBean {
private String id;
private String name;
private String sex;
private String age;
private String interest;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getInterest() {
return interest;
}
public void setInterest(String interest) {
this.interest = interest;
}
}
xml解析
public class UserService {
private File mFile;
public UserService(String file) {
this.mFile = new File(file);
}
public List<UserBean> getConfig() {
List<UserBean> userBean = new ArrayList<>();
XmlPullParserFactory factory = null;
InputStream inputStream = null;
UserBean bean = null;
try {
inputStream = new FileInputStream(mFile);
factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser parser = factory.newPullParser();
parser.setInput(inputStream, "utf-8");
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_TAG:
String tagName = parser.getName();
if ("user".equals(tagName)) {
bean = new UserBean();
bean.setId(parser.getAttributeValue(0));
}
if ("name".equals(tagName)) {
bean.setName(parser.nextText());
}
if ("sex".equals(tagName)) {
bean.setSex(parser.nextText());
}
if ("age".equals(tagName)) {
bean.setAge(parser.nextText());
}
if ("interest".equals(tagName)) {
bean.setInterest(parser.nextText());
}
break;
case XmlPullParser.END_TAG:
String endName = parser.getName();
if ("user".equals(endName)) {
userBean.add(bean);
}
break;
default:
break;
}
eventType = parser.next();
}
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return userBean;
}
}