Pull解析和生成XML
来源:互联网 发布:ireport打印pdf java 编辑:程序博客网 时间:2024/05/16 06:26
1.解析
Pull解析器只有一个重要的方法next(),它的事件也只有5个(START_DOCUMENT,START_TAG,TEXT,END_TAG,END_DOCUMENT)解析方法类似于SAX。
代码如下:
public class PullPersonService {public static List<Person> getPersons(InputStream inputStream) throws Exception{Person person = null;List<Person> list = null;XmlPullParser pullParser = Xml.newPullParser();pullParser.setInput(inputStream, "UTF-8");int event = pullParser.getEventType();//触发第一个事件while (event != XmlPullParser.END_DOCUMENT) {switch (event) {case XmlPullParser.START_DOCUMENT:list = new ArrayList<Person>();break;case XmlPullParser.START_TAG:if("person".equals(pullParser.getName())){int id = Integer.valueOf(pullParser.getAttributeValue(0));person = new Person();person.setId(id);}if(person != null){if("name".equals(pullParser.getName())){person.setName(pullParser.nextText());}if("age".equals(pullParser.getName())){person.setAge(new Short(pullParser.nextText()));Log.i("TAG", person.toString());}}break;case XmlPullParser.END_TAG:if("person".equals(pullParser.getName())){list.add(person);person = null;}break;}event = pullParser.next();}return list;}}
2.生成
public static void save(List<Person> list, OutputStream outputStream) throws Exception{XmlSerializer serializer = Xml.newSerializer();//对象序列化serializer.setOutput(outputStream, "UTF-8");serializer.startDocument("UTF-8", true);serializer.startTag(null, "persons");for (Person person : list) {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();outputStream.flush();outputStream.close();}
0 0
- Pull解析和生成XML
- pull解析和生成xml
- pull解析和生成xml
- Android之PULL解析和生成XML
- 利用Pull生成和解析xml文件
- 使用Pull解析和生成XML文档
- pull生成、解析xml
- pull解析、生成xml
- Pull解析器解析XML文件和生成XML文件
- android中pull解析xml和生成xml
- android sax dom pull 解析xml 和生成xml
- 使用pull解析xml和生成xml文件
- 用pull解析xml和pullParse生成xml文件详解
- android采用pull解析器解析和生成XML
- Android 采用Pull解析器解析和生成XML内容
- 使用Pull解析器生成和解析XML文件
- 采用Pull解析器解析和生成XML内容
- Android使用pull解析器解析和生成xml
- Leetcode Swap Nodes in Pairs
- android layout自适应 低中高分辨率
- 天声人語 20160302 手書きの漢字に多様性を
- Android单元测试初探——JunitTest
- maven无法下载解决方案
- Pull解析和生成XML
- Eclipse自动生成注释,修改注释模板
- 笔记(网上收集)
- IntelliJ Idea 常用快捷键列表
- Android显示来去电归属地
- Hadoop 伪分布式安装
- Mongo数据库吃内存问题以及解决情况
- 日经春秋 20160302
- 广师Android群分享之数据存储、转换、安全等