企划做网站,网站建设的简历,类豆瓣的模板 wordpress,响应式网站好不好XML文件是一种常用的文件格式#xff0c;可以用来存储与传递数据 #xff0c;本文是XML文件序列化与解析的一个简单示例
写文件到本地#xff0c;并用XML格式存储
/*** 写xml文件到本地*/private void writeXmlToLocal() {ListPerson personList getPersonList()…XML文件是一种常用的文件格式可以用来存储与传递数据 本文是XML文件序列化与解析的一个简单示例
写文件到本地并用XML格式存储
/*** 写xml文件到本地*/private void writeXmlToLocal() {ListPerson personList getPersonList();// 获得序列化对象XmlSerializer serializer Xml.newSerializer();try {File path new File(Environment.getExternalStorageDirectory(), persons.xml);FileOutputStream fos new FileOutputStream(path);// 指定序列化对象输出的位置和编码serializer.setOutput(fos, utf-8);serializer.startDocument(utf-8, true); // 写开始 ?xml version1.0 encodingutf-8 standaloneyes ?serializer.startTag(null, persons); // personsfor (Person person : personList) {// 开始写人serializer.startTag(null, person); // personserializer.attribute(null, id, String.valueOf(person.getId()));// 写名字serializer.startTag(null, name); // nameserializer.text(person.getName());serializer.endTag(null, name); // /name// 写年龄serializer.startTag(null, age); // ageserializer.text(String.valueOf(person.getAge()));serializer.endTag(null, age); // /ageserializer.endTag(null, person); // /person}serializer.endTag(null, persons); // /personsserializer.endDocument(); // 结束} catch (Exception e) {e.printStackTrace();}}private ListPerson getPersonList() {ListPerson personList new ArrayListPerson();for (int i 0; i 30; i) {personList.add(new Person(i, wang i, 18 i));}return personList;}
XML解析实现
private ListPerson parserXmlFromLocal() {try {File path new File(Environment.getExternalStorageDirectory(), persons.xml);FileInputStream fis new FileInputStream(path);// 获得pull解析器对象XmlPullParser parser Xml.newPullParser();// 指定解析的文件和编码格式parser.setInput(fis, utf-8);int eventType parser.getEventType(); // 获得事件类型ListPerson personList null;Person person null;String id;while(eventType ! XmlPullParser.END_DOCUMENT) {String tagName parser.getName(); // 获得当前节点的名称switch (eventType) {case XmlPullParser.START_TAG: // 当前等于开始节点 personif(persons.equals(tagName)) { // personspersonList new ArrayListPerson();} else if(person.equals(tagName)) { // person id1person new Person();id parser.getAttributeValue(null, id);person.setId(Integer.valueOf(id));} else if(name.equals(tagName)) { // nameperson.setName(parser.nextText());} else if(age.equals(tagName)) { // ageperson.setAge(Integer.parseInt(parser.nextText()));}break;case XmlPullParser.END_TAG: // /personsif(person.equals(tagName)) {// 需要把上面设置好值的person对象添加到集合中personList.add(person);}break;default:break;}eventType parser.next(); // 获得下一个事件类型}return personList;} catch (Exception e) {e.printStackTrace();}return null;}
测试结果
public class TestCase extends AndroidTestCase {public void test() {
// writeXmlToLocal();ListPerson personList parserXmlFromLocal();for (Person person : personList) {Log.i(TestCase, person.toString());}}
完成