Android PULL解析XML
2013-02-07 21:29
281 查看
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; } }
相关文章推荐
- Android之XML解析(Pull)
- Android pull 解析xml(待写)
- android xml解析 XmlPullParser & XmlSerializer
- Android解析XML(PULL方式)
- android xml解析 XmlPullParser的使用
- android之Xml的高效解析方式——pull
- Android 创建与解析XML(三)---- PULL方式
- Android系列--DOM、SAX、Pull解析XML
- Android解析XML文档之XmlPullParser
- Android之XmlPullParser解析城市列表XML
- Android 创建与解析XML(四)—— Pull方式
- Android开发学习---使用XmlPullParser解析xml文件
- Android数据存储---Pull解析Xml文件
- Android开发:XML解析与DOM、SAX、PULL解析对比
- Android复习之旅--XML序列化和pull解析
- Android 使用SAX或者DOM或者pull解析XML文件
- Android 创建与解析XML(四)—— Pull方式
- 请帮忙用android的XmlPullParser解析xml中的节点
- Android下Xml解析技术(四)、pull生成Xml文件
- Android 三种常用XML解析方式:SAX,DOM和PULL