android基础--使用Pull解析器生成XML文件
来源:互联网 发布:施工企业会计软件 编辑:程序博客网 时间:2024/06/05 07:44
解析person.xml文件:
person.xml
<?xml version="1.0" encoding="UTF-8"?><persons><person id="23"><name>张三</name><age>3</age></person><person id="20"><name>Mary</name><age>25</age></person></persons>
1.Manifest.xml中增加
<uses-library android:name="android.test.runner" /><instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="cn.com.xml" android:label="Tests for My App" />
建立person.xml对应的javabean类
public class Person {private String name;private int id;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getId() {return id;}public void setId(int id) {this.id = id;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Person [age=" + age + ", id=" + id + ", name=" + name + "]";}}
2.业务层中解析person.xml
public static ArrayList<Person> getPersons(InputStream xml)throws Exception {ArrayList<Person> persons = null;Person person = null;XmlPullParser parser = Xml.newPullParser();parser.setInput(xml, "utf-8");int event = parser.getEventType();while (event != XmlPullParser.END_DOCUMENT) {switch (event) {case XmlPullParser.START_DOCUMENT:persons = new ArrayList<Person>();break;case XmlPullParser.START_TAG:if ("person".equals(parser.getName())) {person = new Person();person.setId(Integer.parseInt(parser.getAttributeValue(0)));} else if ("name".equals(parser.getName())) {person.setName(parser.nextText());} else if ("age".equals(parser.getName())) {person.setAge(Integer.parseInt(parser.nextText()));}break;case XmlPullParser.END_TAG:if ("person".equals(parser.getName())) {persons.add(person);person = null;}default:break;}event = parser.next();}return persons;}
3.测试
public void testGetPersons() throws Throwable{InputStream xml = this.getClass().getClassLoader().getResourceAsStream("person.xml");ArrayList<Person> al = PullXml.getPersons(xml);for(Person person: al){Log.i("PersonTest", person.toString());}}
集合xml的转换,将例子中类路径下的person.xml文件读取并存放到手机中应用程序的/data/data/应用程序包/files下
1.业务层方法:
public static void savePersons(ArrayList<Person> persons, OutputStream out)throws Exception{XmlSerializer xs = Xml.newSerializer();xs.setOutput(out, "utf-8");xs.startDocument("utf-8", true);xs.startTag(null, "persons");for(Person p : persons){xs.startTag(null, "person");xs.attribute(null, "id", p.getId()+"");xs.startTag(null, "name");xs.text(p.getName());xs.endTag(null, "name");xs.startTag(null, "age");xs.text(p.getAge()+"");xs.endTag(null, "age");xs.endTag(null, "person");}xs.endTag(null, "persons");xs.endDocument();out.flush();out.close();}
2.测试
public void testSavePersons() throws Throwable{InputStream xml = this.getClass().getClassLoader().getResourceAsStream("person.xml");ArrayList<Person> al = PullXml.getPersons(xml);FileOutputStream out = new FileOutputStream(new File(getContext().getFilesDir(),"zzzz.xml"));PullXml.savePersons(al, out);}
- android基础--使用Pull解析器生成XML文件
- Android使用Pull生成/解析XML文件
- 在android中使用Pull解析器生成xml文件
- android(15)_使用Pull解析器生成XML文件
- Android笔记使用Pull解析器生成XML文件
- 使用Pull解析器生成XML文件
- Android中使用Pull解析器生成XML文件和读取xml文件
- Android下使用pull解析器生成XML文件、读取XML文件
- Android使用PULL解析和生成XML文件
- Android使用Pull解析和生成XML文件
- android利用Pull解析器解析、生成XMl文件
- 使用Pull解析器生成和解析XML文件
- 使用pull解析器解析和生成xml文件
- Android使用pull解析器解析和生成xml
- android使用pull解析器来解析和生成xml文件
- pull解析器解析 生成 xml文件
- Android使用Pull解析器解析XML文件
- Android使用Pull解析器解析XML文件
- 利用apache+wsgi运行你的django网站 - [开发]
- 掌握DirectX和DirectInput—力反馈游戏杆(1)
- C语言中变量的本质
- 设置outlook 2007登录密码【转】
- C++虚函数表解析(转) ——写的真不错 (转)
- android基础--使用Pull解析器生成XML文件
- 掌握DirectX和DirectInput—力反馈游戏杆 (2)
- oracle存储过程---游标篇
- android基础--使用嵌入式关系型SQLite数据库存储数据
- android基础--内容提供者
- UTF-8, Unicode, GB2312格式串转换之C语言版
- android基础--网络图片查看器
- qt后期小问题
- Developer Express .NET Winform4 - Ribbon属性