<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<persons>
<person>
<name sex="男">徐志摩</name>
<address>法国剑桥大学</address>
<phone>苹果手机</phone>
<hoppy>游泳</hoppy>
</person>
<person>
<name sex="女">张幼仪</name>
<address>北京大学</address>
<phone>苹果手机</phone>
<hoppy>跑步</hoppy>
</person>
<person>
<name sex="女">徐家辉</name>
<address>北京八维</address>
<phone>oppoR11</phone>
<hoppy>玩</hoppy>
</person>
</persons>
解析XML方法的小工具
private List<PersonBean> pullAnaly(InputStream in) {
List<PersonBean> list = null;
PersonBean personBean = null;
try {
// 创建pull解析方式
XmlPullParser pullParser = XmlPullParserFactory.newInstance()
.newPullParser();
// 设置xml的流和编码格式
pullParser.setInput(in, "UTF-8");
// 获取当前的状态
int type = pullParser.getEventType();
while (type != XmlPullParser.END_DOCUMENT) {
// 获取当前的标签名称
String TypeName = pullParser.getName();
// 根据当前的状态进行判断
switch (type) {
// 开始标签
case XmlPullParser.START_TAG:
if (TypeName.equals("persons")) {
list = new ArrayList<PersonBean>();
} else if (TypeName.equals("person")) {
personBean = new PersonBean();
} else if (TypeName.equals("name")) {
personBean.name = pullParser.nextText();
//获取属性的内容
personBean.sex = pullParser.getAttributeValue(null,"sex");
} else if (TypeName.equals("address")) {
//获取下一个内容存入javabean中
personBean.address = pullParser.nextText();
} else if (TypeName.equals("hoppy")) {
personBean.hoppy = pullParser.nextText();
} else if (TypeName.equals("phone")) {
personBean.phone = pullParser.nextText();
}
break;
// 结束标签
case XmlPullParser.END_TAG:
if (TypeName.equals("person")) {
list.add(personBean);
}
break;
default:
break;
}
type = pullParser.next();
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
封装一个XML的小工具
public boolean saveXml(List<PersonBean> list) {
Log.d("aa", list.size() + "--" + list.get(1).name);
// 创建存储对象
XmlSerializer xs = Xml.newSerializer();
try {
xs.setOutput(this.openFileOutput("person.xml", this.MODE_PRIVATE),
"UTF-8");
// 设置头结点
xs.startDocument("UTF-8", true);
// 设置根节点
xs.startTag(null, "persons");
// 循环添加子元素
for (int i = 0; i < list.size(); i++) {
// 设置子根节点
xs.startTag(null, "person");
// 为子根节点设置属性
xs.attribute(null, "id", i + "");
// 设置姓名
xs.startTag(null, "name");
xs.attribute(null, "sex", list.get(i).sex);
xs.text(list.get(i).name);
xs.endTag(null, "name");
// 设置爱好
xs.startTag(null, "hpbby");
xs.text(list.get(i).hoppy);
xs.endTag(null, "hpbby");
// 设置住址
xs.startTag(null, "address");
xs.text(list.get(i).address);
xs.endTag(null, "address");
// 设置手机
xs.startTag(null, "phone");
xs.text(list.get(i).phone);
xs.endTag(null, "phone");
xs.endTag(null, "person");
}
xs.endDocument();
xs.endTag(null, "persons");
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}