xml操作
发布时间:2020-12-16 05:45:07 所属栏目:百科 来源:网络整理
导读:/** * 写xml到本地 */private void writeXmlToLocal() {Listperson listPerson = getListPerson();XmlSerializer xmlse = Xml.newSerializer();// 获得序列号对象try {File path = new File(Environment.getExternalStorageDirectory(),"person.xml");FileOu
/** * 写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; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |