/**
* 写xml到本地
*/
private void writeXmlToLocal() {
List<person> listPerson = getListPerson();
XmlSerializer xmlse = Xml.newSerializer();// 获得序列号对象
try {
File path = new File(Environment.getExternalStorageDirectory(),
"person.xml");
FileOutputStream fos = new FileOutputStream(path);
xmlse.setOutput(fos, "utf-8");// 设置输出编码和类型
xmlse.startDocument("utf-8", true);// 开始文档
xmlse.startTag(null, "persons");
for (person per : listPerson) {
xmlse.startTag(null, "person");
xmlse.attribute(null, "id", String.valueOf(per.getId()));
xmlse.endTag(null, "person");
xmlse.startTag(null, "name");
xmlse.text(per.getName());
xmlse.endTag(null, "name");
xmlse.startTag(null, "age");
xmlse.text(String.valueOf(per.getAge()));
xmlse.endTag(null, "age");
}
xmlse.endTag(null, "persons");
xmlse.endDocument();// 结束文档
} catch (Exception e) {
// TODO Auto-generated catch block
}
}
private List<person> getListPerson() {
List<person> list = new ArrayList<person>();
for (int i = 0; i < 30; i++) {
list.add(new person(i, "王" + i, 18 + i));
}
return list;
}
private List<person> parserXmlFromLocal() {
try {
File path = new File(Environment.getExternalStorageDirectory(),
"person.xml");
FileInputStream fos = new FileInputStream(path);
XmlPullParser xmlse = Xml.newPullParser();// 获得解析器
xmlse.setInput(fos, "utf-8");// 获得解析对象和编码格式
int envettype = xmlse.getEventType();// 获取事件类型
List<person> list = null;
person p = null;
String id;
while (envettype != XmlPullParser.END_DOCUMENT)// 循环事件类型
{
String tagname = xmlse.getName();
switch (envettype) {
case XmlPullParser.START_TAG:
if ("persons".equals(tagname)) {
list = new ArrayList<person>();
} else if ("person".equals(tagname)) {
p = new person();
id = xmlse.getAttributeValue(null, "id");
p.setId(Integer.parseInt(id));
} else if ("name".equals(tagname)) {
p.setName(xmlse.nextText());
} else if ("age".equals(tagname)) {
p.setAge(Integer.parseInt(xmlse.nextText()));
}
break;
case XmlPullParser.END_TAG:
if ("persons".equals(tagname)) {
list.add(p);
}
}
envettype = xmlse.next();// 获取下一个事件类型
}
return list;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
xml操作
最新推荐文章于 2022-12-28 08:53:57 发布