android(9)(使用pull解析xml文件)
来源:互联网 发布:淘宝男装首页文案范文 编辑:程序博客网 时间:2024/03/29 21:10
beans类:public class Person { private int id; private String name; private int age; @Override public String toString() { return "Person [id=" + id + ", name=" + name + ", age=" + age + "]"; } public Person(int id, String name, int age) { super(); this.id = id; this.name = name; this.age = age; } public Person() { super(); // TODO Auto-generated constructor stub } 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 int getAge() { return age; } public void setAge(int age) { this.age = age; }序列化xml文件和pull解析xml文件:public class TestCase extends AndroidTestCase { public void test() {// writeXmlToLocal(); List<Person> personList = parserXmlFromLocal(); for (Person person : personList) { Log.i("TestCase", person.toString()); } } /** * 写xml文件到本地 */ private void writeXmlToLocal() { List<Person> personList = getPersonList(); // 获得序列化对象 XmlSerializer serializer = Xml.newSerializer();//serializer :可被序列化的 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 version='1.0' encoding='utf-8' standalone='yes' ?> serializer.startTag(null, "persons"); // <persons> for (Person person : personList) { // 开始写人(ID) serializer.startTag(null, "person"); // <person> serializer.attribute(null, "id", String.valueOf(person.getId())); // 写名字 serializer.startTag(null, "name"); // <name> serializer.text(person.getName()); serializer.endTag(null, "name"); // </name> // 写年龄 serializer.startTag(null, "age"); // <age> serializer.text(String.valueOf(person.getAge())); serializer.endTag(null, "age"); // </age> serializer.endTag(null, "person"); // </person> } serializer.endTag(null, "persons"); // </persons> serializer.endDocument(); // 结束 } catch (Exception e) { e.printStackTrace(); } } //得到一个存有人对象的集合 private List<Person> getPersonList() { List<Person> personList = new ArrayList<Person>(); for (int i = 0; i < 30; i++) { personList.add(new Person(i, "wang" + i, 18 + i)); } return personList; } //从本地解析xml文件(pull解析) private List<Person> 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(); // 获得事件类型 List<Person> personList = null; Person person = null; String id; while(eventType != XmlPullParser.END_DOCUMENT) { String tagName = parser.getName(); // 获得当前节点的名称 switch (eventType) { case XmlPullParser.START_TAG: // 当前等于开始节点 <person> if("persons".equals(tagName)) { // <persons> personList = new ArrayList<Person>(); } else if("person".equals(tagName)) { // <person id="1"> person = new Person(); id = parser.getAttributeValue(null, "id"); person.setId(Integer.valueOf(id)); } else if("name".equals(tagName)) { // <name> person.setName(parser.nextText()); } else if("age".equals(tagName)) { // <age> person.setAge(Integer.parseInt(parser.nextText())); } break; case XmlPullParser.END_TAG: // </persons> if("person".equals(tagName)) { // 需要把上面设置好值的person对象添加到集合中 personList.add(person); } break; default: break; } eventType = parser.next(); // 获得下一个事件类型 } return personList; } catch (Exception e) { e.printStackTrace(); } return null; }
0 0
- android(9)(使用pull解析xml文件)
- Android应用中使用Pull解析XML文件(传智播客)
- Android PULL解析XML文件(二)
- android 使用 pull 解析xml文件
- android 使用 pull 解析xml文件
- android 使用pull方式解析xml文件
- android 使用pull 方式解析 xml文件
- Android 中使用Pull解析XML文件
- Android 读写XML文件(使用pull解析)
- Android 中使用Pull解析XML文件
- Android学习-- 使用Pull解析XML文件
- Android-使用pull解析xml文件
- Android使用pull方法解析XML文件
- Android中使用pull解析xml文件
- Android中使用pull解析xml文件
- Android使用Pull生成/解析XML文件
- 使用pull方法解析Xml文件(省市县Xml)
- android 的pull 解析器 解析 xml文件(转载)
- linux下出现ping:unknown host www.baidu.com问题时的解决办法——ubuntu下局域网络的配置
- C#几种异步编程
- app多少钱,开发一款app到底多少钱合适,开发一款APP应用大概需要多少钱
- 从头认识java-12.2 Class对象(1)-简介
- java js sql 中的replace函数
- android(9)(使用pull解析xml文件)
- 20151204正则第六部分(awk小扩展)
- 功能这么齐全的图片压缩类,还有谁?
- SlidingMenu事件处理流程
- LIS接口
- h Sqlite全面学习(一)
- Android自定义View----1. 自定义组合控件
- [JVM] 字节码指令集简介
- 看清世界,看透自己,变强吧!