读写xml文件
2015-09-27 14:49
351 查看
xml文件:assets/person.xml
View Code
把xml文件内容转成object list:
把object list内容写入xml:
源码地址:
https://github.com/amorypepelu/XMLDemo
package com.example.xmldemo.domain; public class Person { private int id; private String name; private String password; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Person(int id, String name, String password) { super(); this.id = id; this.name = name; this.password = password; } public Person(String name, String password) { super(); this.name = name; this.password = password; } public Person() { } }
View Code
把xml文件内容转成object list:
private List<Person> xmlToObjList() { XmlPullParser parser = Xml.newPullParser(); InputStream is = null; List<Person> xmlDatas = new ArrayList<Person>(); try { is = getAssets().open("person.xml"); // 关联要解析的xml文档 parser.setInput(is, "utf-8"); Person person = null; int event = parser.getEventType(); // 不等于文档结束事件循环 while (event != XmlPullParser.END_DOCUMENT) { if (XmlPullParser.START_TAG == event) { // person标签开始 if ("person".equals(parser.getName())) { person = new Person(); int pid = Integer.parseInt(parser.getAttributeValue(0)); person.setId(pid); } // name标签开始 if ("name".equals(parser.getName())) { String name = parser.nextText(); person.setName(name); } if ("password".equals(parser.getName())) { String password = parser.nextText(); person.setPassword(password); } } if (XmlPullParser.END_TAG == event) { // person标签结束 if ("person".equals(parser.getName())) { xmlDatas.add(person); } } event = parser.next(); } // 验证: for (Person p : xmlDatas) { Log.i("XML", p.getName() + p.getPassword()); } } catch (IOException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } finally { if (is != null) { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } return xmlDatas; }
把object list内容写入xml:
private void objToXml(List<Person> xmlDatas) { XmlSerializer serializer = Xml.newSerializer(); OutputStream os = null; try { // 保存位置 os = openFileOutput("person.xml", MODE_PRIVATE); serializer.setOutput(os, "utf-8"); // 生成xml文件 serializer.startDocument("utf-8", false); // 开始标签:<persons> serializer.startTag(null, "persons"); for (Person person : xmlDatas) { // <person> serializer.startTag(null, "person"); // 生成id属性 serializer.attribute(null, "id", String.valueOf(person.getId())); // <name>标签 serializer.startTag(null, "name"); // 内容 serializer.text(person.getName()); // </name>标签 serializer.endTag(null, "name"); serializer.startTag(null, "password"); serializer.text(person.getPassword()); serializer.endTag(null, "password"); serializer.endTag(null, "person"); } serializer.endTag(null, "persons"); // 结束 serializer.endDocument(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (os != null) { try { os.close(); } catch (IOException e) { e.printStackTrace(); } } } Toast.makeText(this, "success", Toast.LENGTH_SHORT).show(); }
源码地址:
https://github.com/amorypepelu/XMLDemo
相关文章推荐
- SSH整合(二)——利用Spring来装配Action类
- jQuery获取checkboxlist的value值的方法
- SSH整合(二)——利用Spring来装配Action类
- java面试题二十六 多线程考题
- java的四个访问控制符
- 个人博客 week1
- Json数据解析
- Android-Async-HttpClient 源码解析
- poj 3280 Cheapest Palindrome 区间dp
- MySQL下载安装、配置与使用(win7x64)
- 飞机订票系统测试用例
- iOS开发:Iphone的常用控件大全
- A Bug's Life 并查集
- Unity该插件NGUI得知(9)—— Tween并转换成世界坐标系的大小NGUI尺寸
- linux sticky bit 目录权限 rwt权限
- hadoop编程技巧(6)---处理大量的小型数据文件CombineFileInputFormat申请书
- Android实时文件夹创建方法
- Illegal modifier for the variable str; only final is permitted的错误的深入理解
- centos---安装adobe-release-i386-1.0-1.noarch.rpm
- 【转】malloc与free的底层实现