xml序列化到本地以及使用Pull解析xml
来源:互联网 发布:淘宝保证金是什么 编辑:程序博客网 时间:2024/05/18 02:42
package com.tu.test;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlSerializer;import android.os.Environment;import android.test.AndroidTestCase;import android.util.Xml;public class TuTest extends AndroidTestCase { public void test() {// List<Person> persons = this.getPersonList();// this.writeToLocal(persons);//写到xml文件 System.out.println("-------->开始");// List<Person> persons; List<Person> persons = parseXmlFromLocal(new File(Environment.getExternalStorageDirectory(),"persons.xml")); System.out.println("persons的size--->"); for(Person person : persons){ System.out.println(person.toString());; }} /** * 自己创建一个Person集合,用于测试写到本地 * @return */ public List<Person> getPersonList(){ List<Person> persons = new ArrayList<Person>(); for(int i=0; i<20; i++){ Person person = new Person(); person.setId(i); person.setAge(18+i); person.setName("baby"+i); persons.add(person); } return persons; } /** * 把Person集合写到本地的xml文件中 * @param persons * @throws IOException * @throws IllegalStateException * @throws IllegalArgumentException */ public void writeToLocal(List<Person> persons) throws IllegalArgumentException, IllegalStateException, IOException { BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(Environment.getExternalStorageDirectory(),"persons.xml"))); System.out.println(Environment.getExternalStorageDirectory());// StringBuilder sb = new StringBuilder(); XmlSerializer serializer = Xml.newSerializer(); serializer.setOutput(bos, "UTF-8"); serializer.startDocument("UTF-8", true); serializer.startTag(null, "persons"); for(Person person : persons){ serializer.startTag(null, "person"); serializer.attribute(null, "id",String.valueOf(person.getId()) ); serializer.startTag(null, "name"); serializer.text(person.getName()); serializer.endTag(null, "name"); serializer.startTag(null, "age"); serializer.text(String.valueOf(person.getAge())); serializer.endTag(null, "age"); serializer.endTag(null, "person"); } serializer.endTag(null, "persons"); serializer.endDocument(); bos.close(); } public List<Person> parseXmlFromLocal(File xmlFile){ try { BufferedInputStream bis = new BufferedInputStream(new FileInputStream(xmlFile)); XmlPullParser pullParser = Xml.newPullParser(); pullParser.setInput(bis, "utf-8"); int eventType = pullParser.getEventType(); List<Person> persons = null; Person person = null; System.out.println("1111111"); while(eventType != XmlPullParser.END_DOCUMENT){ switch (eventType) { case XmlPullParser.START_TAG: if(pullParser.getName().equals("persons")){ persons = new ArrayList<Person>(); }else if(pullParser.getName().equals("person")){ person = new Person(); person.setId(Integer.valueOf(pullParser.getAttributeValue(null, "id"))); }else if(pullParser.getName().equals("name")){ person.setName(pullParser.nextText()); }else if(pullParser.getName().equals("age")){ person.setAge(Integer.valueOf(pullParser.nextText())); } break; case XmlPullParser.END_TAG: if(pullParser.getName().equals("person")){ System.out.println("33333333333"); persons.add(person); } break; default: break; } pullParser.next(); } return persons; } catch (Exception e) { System.out.println("发生错误"); }// bis.close(); return null; }}class Person{ private int id; private String name; private int age; 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; } @Override public String toString() { return "Person [id=" + id + ", name=" + name + ", age=" + age + "]"; }}
0 0
- xml序列化到本地以及使用Pull解析xml
- xml序列化、pull解析XML
- XML序列化以及用pull解析器解析XML文件
- xml的pull解析和序列化
- pull,sax,dom解析 xml序列化
- pull方式解析xml文件以及用Serializer序列化器生成xml文件
- 本地XML之Pull解析
- 使用pull解析Xml
- 使用pull解析xml
- 使用Pull解析Xml
- 使用pull解析xml
- Xml使用pull解析
- 使用Pull解析XML
- 序列化生成XML文件以及Pull解析
- XML序列化及PULL解析,DOM解析,SAX解析
- xml解析(使用pull解析)
- Java-使用SAX,DOM,pull解析XML文件以及pull解析生成xml文件
- Android中使用xml保存数据(xml文件序列化)及使用pull解析xml文件
- Service的使用(四)前台服务与AIDL
- Chromium为视频标签<video>创建播放器的过程分析
- Android SQLiteDatabase的使用
- NodeJs——(16)用Nodejs 4.X版本,制作一个微博网站(多图,详细步骤)(已完成)
- POJ 2253 Frogger
- xml序列化到本地以及使用Pull解析xml
- 平面最近点对问题求解
- JSON和JSONP
- dip和px区别联系 产生的根源和设计时的影响如何?是否屏幕密度的决定原因?
- 基于 WebSocket 实现 WebGL 3D 拓扑图实时数据通讯同步(一)
- Android一行命令上传你的项目到Jcenter/Maven
- 如何做个好员工(转载)
- Caused by: java.lang.SecurityException: Permission Denif
- SVN源码管理