package cn.itcast.service;import java.io.InputStream;import java.io.OutputStream;import java.io.Writer;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlSerializer;import android.util.Xml;import cn.itcast.domain.Person;/** * 采用Pull解析XML内容 */public class PULLPersonService {public static void save(List<Person> persons, Writer writer) throws Throwable{XmlSerializer serializer = Xml.newSerializer();serializer.setOutput(writer);serializer.startDocument("UTF-8", true);serializer.startTag(null, "persons");for(Person person : persons){serializer.startTag(null, "person");serializer.attribute(null, "id", person.getId().toString());serializer.startTag(null, "name");serializer.text(person.getName());serializer.endTag(null, "name");serializer.startTag(null, "age");serializer.text(person.getAge().toString());serializer.endTag(null, "age");serializer.endTag(null, "person");}serializer.endTag(null, "persons");serializer.endDocument();writer.flush();writer.close();}public static List<Person> getPersons(InputStream inStream) throws Throwable{List<Person> persons = null;Person person = null;XmlPullParser parser = Xml.newPullParser();parser.setInput(inStream, "UTF-8");int eventType = parser.getEventType();//产生第一个事件while(eventType!=XmlPullParser.END_DOCUMENT){//只要不是文档结束事件switch (eventType) {case XmlPullParser.START_DOCUMENT:persons = new ArrayList<Person>();break;case XmlPullParser.START_TAG:String name = parser.getName();//获取解析器当前指向的元素的名称if("person".equals(name)){person = new Person();person.setId(new Integer(parser.getAttributeValue(0)));}if(person!=null){if("name".equals(name)){person.setName(parser.nextText());//获取解析器当前指向元素的下一个文本节点的值}if("age".equals(name)){person.setAge(new Short(parser.nextText()));}}break;case XmlPullParser.END_TAG:if("person".equals(parser.getName())){persons.add(person);person = null;}break;}eventType = parser.next();}return persons;}}

作者:jaycee110905 发表于2013-2-7 21:29:23 原文链接 阅读:81 评论:0 查看评论

更多相关文章

  1. Android(安卓)关于XmlResourceParser
  2. [Android]Activity的创建
  3. Android(安卓)TableLayout数据列表的回显清空
  4. android布局
  5. Android中RelativeLayout及TableLayout使用说明
  6. android下通过xstream解析xml格式信息
  7. Android(安卓)SparseArray源码阅读
  8. Android(安卓)Webview解析
  9. Android(安卓)获取url中的参数

随机推荐

  1. Android的Bluetooth Profile与UUID
  2. Android添加垂直滚动ScrollView
  3. android 圆角图标 和不规则圆角(边框)
  4. [Android Pro] PackageManager#getPackag
  5. 一些非常实用的 Android 开发资源 【转】
  6. android 4.0 for windows 7 开发环境搭建
  7. Android中Gallery的应用
  8. 自定义 SeekBar 样式 详解
  9. Rockie's Android Porting Guide(3)——Add
  10. 关于Android音频、视频录制类MediaRecord