Android应用中使用Pull解析XML文件(传智播客)

在Android应用中使用Pull解析XML文件(传智播客视频笔记)

Service.java源码:

  1. package com.sinaapp.ssun.service;  
  2.   
  3. import java.io.InputStream;  
  4. import java.io.OutputStream;  
  5. import java.util.*;  
  6.   
  7. import org.xmlpull.v1.XmlPullParser;  
  8. import org.xmlpull.v1.XmlPullParserFactory;  
  9. import org.xmlpull.v1.XmlSerializer;  
  10.   
  11. import android.util.Xml;  
  12.   
  13. import com.sinaapp.ssun.domain.Person;  
  14.   
  15. public class Service {  
  16.     /** 
  17.      * 获取XML文件中的数据 
  18.      * @param xml 
  19.      * @return 
  20.      * @throws Exception 
  21.      */  
  22.     public static List<Person> getPersons(InputStream xml) throws Exception {  
  23.         List<Person> persons = null;  
  24.         XmlPullParser parser = XmlPullParserFactory.newInstance()  
  25.                 .newPullParser();  
  26.         // parser = Xml.newPullParser();  
  27.         parser.setInput(xml, "UTF-8");  
  28.         int event = parser.getEventType();  
  29.         Person p = null;  
  30.         while (event != XmlPullParser.END_DOCUMENT) {  
  31.             switch (event) {  
  32.             case XmlPullParser.START_DOCUMENT:  
  33.                 persons = new ArrayList<Person>();  
  34.                 break;  
  35.             case XmlPullParser.START_TAG:  
  36.                 if("person".equals(parser.getName())){  
  37.                     p = new Person();  
  38.                     int id = Integer.parseInt(parser.getAttributeValue(0));  
  39.                     p.setId(id);  
  40.                 }  
  41.                 if("name".equals(parser.getName())){  
  42.                     String name = parser.nextText();  
  43.                     p.setName(name);  
  44.                 }  
  45.                 if("age".equals(parser.getName())){  
  46.                     int age = Integer.parseInt(parser.nextText());  
  47.                     p.setAge(age);  
  48.                 }  
  49.                 break;  
  50.             case XmlPullParser.END_TAG:  
  51.                 if("person".equals(parser.getName())){  
  52.                     persons.add(p);  
  53.                     p = null;  
  54.                 }  
  55.                 break;  
  56.             }  
  57.             event = parser.next();  
  58.         }  
  59.         return persons;  
  60.     }  
  61.       
  62.     /** 
  63.      * 保存数据到XML文件中 
  64.      * @param persons 
  65.      * @param out 
  66.      * @throws Exception 
  67.      */  
  68.     public static void save(List<Person> persons , OutputStream out) throws Exception{  
  69.         XmlSerializer serializer  =  Xml.newSerializer();  
  70.         serializer.setOutput(out, "UTF-8");  
  71.         serializer.startDocument("UTF-8"true);  
  72.         serializer.startTag(null"persons");  
  73.         for(Person p: persons){  
  74.             serializer.startTag(null"person");  
  75.             serializer.attribute(null"person", p.getId()+"");  
  76.               
  77.             serializer.startTag(null"name");  
  78.             serializer.text(p.getName());  
  79.             serializer.endTag(null"name");  
  80.               
  81.             serializer.startTag(null"age");  
  82.             serializer.text(p.getAge()+"");  
  83.             serializer.endTag(null"age");  
  84.               
  85.             serializer.endTag(null"person");  
  86.         }  
  87.         serializer.endTag(null"persons");  
  88.         serializer.endDocument();  
  89.         out.flush();  
  90.         out.close();  
  91.     }  
  92. }  
Person.java源码:

  1. package com.sinaapp.ssun.domain;  
  2.   
  3. public class Person {  
  4.     private String name;  
  5.     private int age;  
  6.     private int id;  
  7.       
  8.     public String getName() {  
  9.         return name;  
  10.     }  
  11.     public void setName(String name) {  
  12.         this.name = name;  
  13.     }  
  14.     public int getAge() {  
  15.         return age;  
  16.     }  
  17.     public void setAge(int age) {  
  18.         this.age = age;  
  19.     }  
  20.     public int getId() {  
  21.         return id;  
  22.     }  
  23.     public void setId(int id) {  
  24.         this.id = id;  
  25.     }  
  26.       
  27.     public Person(String name, int age, int id) {  
  28.         this.name = name;  
  29.         this.age = age;  
  30.         this.id = id;  
  31.     }  
  32.     public Person() {  
  33.         super();  
  34.     }  
  35.     @Override  
  36.     public String toString() {  
  37.         return "Person [name=" + name + ", age=" + age + ", id=" + id + "]";  
  38.     }  
  39. }  

text.xml文件:

  1. <!--test.xml-->  
  2. <?xml version="1.0" encoding="UTF-8"?><!-- 开始文档语法 -->  
  3. <persons>  
  4.         <person  id="1">  
  5.             <name>ssun</name>  
  6.             <age>19</age>  
  7.         </person>  
  8.         <person  id="2">  
  9.             <name>cobe</name>  
  10.             <age>24</age>  
  11.         </person>  
  12. </persons>  

单元测试TestService.java源码:

  1. package com.sinaapp.ssun.test;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileNotFoundException;  
  5. import java.io.FileOutputStream;  
  6. import java.util.ArrayList;  
  7. import java.util.List;  
  8.   
  9. import android.test.AndroidTestCase;  
  10. import android.util.Log;  
  11.   
  12. import com.sinaapp.ssun.domain.Person;  
  13. import com.sinaapp.ssun.service.Service;  
  14.   
  15. public class TestService extends AndroidTestCase {  
  16.     private final String Tag = "Test";  
  17.       
  18.     public void testPersons() throws Exception{  
  19.         List<Person> persons = Service.getPersons(this.getClass().getClassLoader().getResourceAsStream("test.xml"));  
  20.         for(Person p : persons){  
  21.             Log.i(Tag, p.toString());  
  22.         }  
  23.     }  
  24.       
  25.     public void testSave() throws Exception{  
  26.         List<Person> persons = new ArrayList<Person>();  
  27.         persons.add(new Person("www",19,23));  
  28.         persons.add(new Person("hhh",19,3));  
  29.         persons.add(new Person("qqq",19,24));   
  30.         persons.add(new Person("ooo",19,25));  
  31.         File file = new File(this.getContext().getFilesDir(),"test2.xml");  
  32.         FileOutputStream out = new FileOutputStream(file);  
  33.         Service.save(persons, out);  
  34.     }  
  35.       
  36. }  
  37.     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
4S店客户管理小程序-毕业设计,基于微信小程序+SSM+MySql开发,源码+数据库+论文答辩+毕业论文+视频演示 社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非常有意义的。 本文从管理员、用户的功能要求出发,4S店客户管理系统的功能模块主要是实现管理员服务端;首页、个人心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理,用户客户端:首页、车展、新闻头条、我的。门店客户端:首页、车展、新闻头条、我的经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与4S店客户管理系统实现的实际需求相结合,讨论了微信开发者技术与后台结合java语言和MySQL数据库开发4S店客户管理系统的使用。 关键字:4S店客户管理系统小程序 微信开发者 Java技术 MySQL数据库 软件的功能: 1、开发实现4S店客户管理系统的整个系统程序; 2、管理员服务端;首页、个人心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理等。 3、用户客户端:首页、车展、新闻头条、我的 4、门店客户端:首页、车展、新闻头条、我的等相应操作; 5、基础数据管理:实现系统基本信息的添加、修改及删除等操作,并且根据需求进行交流信息的查看及回复相应操作。
现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集处理数据信息的管理方式。本微信小程序医院挂号预约系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此微信小程序医院挂号预约系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。微信小程序医院挂号预约系统有管理员,用户两个角色。管理员功能有个人心,用户管理,医生信息管理,医院信息管理,科室信息管理,预约信息管理,预约取消管理,留言板,系统管理。微信小程序用户可以注册登录,查看医院信息,查看医生信息,查看公告资讯,在科室信息里面进行预约,也可以取消预约。微信小程序医院挂号预约系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值