首先将xml文件导入SD卡
xml文件如下:
<?xml version="1.0" encoding="utf-8"?>
<persons>
<person id="01">
<name>小公公</name>
<age>21</age>
<sex>不详</sex>
</person>
<person id="02">
<name>翠花</name>
<age>21</age>
<sex>女</sex>
</person>
</persons>
接下来是整个解析方法了
// 解析Xml-->PullParger
private ArrayList<XmlBean> getSDXml() {
/*
* 清单文件配置读写权限
* <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
* <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
*/
// 是否挂载
if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
return null;
}
// 文件路径
File file = new File(Environment.getExternalStorageDirectory(),
"exit.xml");
try {
// 读取文件-->以流的方式
FileInputStream stream = new FileInputStream(file);
// 获取文件解析类
XmlPullParser parser = Xml.newPullParser();
// 设置解析类的数据和编码格式
parser.setInput(stream, "utf-8");
// 根据事件获取节点
int type = parser.getEventType();
// ====
ArrayList<XmlBean> list = null;
XmlBean xmlBean = null;
// 判断文档是否读取完毕
while (type != XmlPullParser.END_DOCUMENT) {
switch (type) {
case XmlPullParser.START_DOCUMENT:
// 文档开始--创建集合
list = new ArrayList<XmlBean>();
break;
case XmlPullParser.START_TAG:// 标签开始
if (parser.getName().equals("person")) {
// 创建bean
xmlBean = new XmlBean();
// 属性节点根据索引获取
String id = parser.getAttributeValue(0);
xmlBean.setId(id);
}
if (parser.getName().equals("name")) {
String name = parser.nextText();
xmlBean.setName(name);
}
if (parser.getName().equals("age")) {
String age = parser.nextText();
xmlBean.setAge(age);
}
if (parser.getName().equals("sex")) {
String sex = parser.nextText();
xmlBean.setSex(sex);
}
break;
case XmlPullParser.END_TAG:// 标签结束
if (parser.getName().equals("person")) {
// bean类存进集合
list.add(xmlBean);
}
break;
}
// 获取下个标签内数据
type = parser.next();
}
return list;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
`
> 如果感觉有所帮助,多多评论互动,以后常更新。