xml文件解析和序列化
转载:http://blog.csdn.net/liuhe688/article/details/6415593
- XmlPullParser parser = Xml.newPullParser(); //由android.util.Xml创建一个XmlPullParser实例
- parser.setInput(is, "UTF-8"); //设置输入流 并指明编码方式
- int eventType = parser.getEventType();
- while (eventType != XmlPullParser.END_DOCUMENT) {
- switch (eventType) {
- case XmlPullParser.START_DOCUMENT:
- books = new ArrayList<Book>();
- break;
- case XmlPullParser.START_TAG:
- if (parser.getName().equals("book")) {
- book = new Book();
- } else if (parser.getName().equals("id")) {
- eventType = parser.next();
- book.setId(Integer.parseInt(parser.getText()));
- } else if (parser.getName().equals("name")) {
- eventType = parser.next(); //parser.getAttributeName(0) 当前标签内第0个属性的名称 parser.getAttributeValue(0) 当前标签内第0个属性对应的值
- //parser.getAttributeValue("","name"); 得到当前标签内名称为name的值,默认为“”
- book.setName(parser.getText());
- } else if (parser.getName().equals("price")) {
- eventType = parser.next();
- book.setPrice(Float.parseFloat(parser.getText()));
- }
- break;
- case XmlPullParser.END_TAG:
- if (parser.getName().equals("book")) {
- books.add(book);
- book = null;
- }
- break;
- }
- eventType = parser.next();
- }
- return books;
- }
- @Override
- public String serialize(List<Book> books) throws Exception {
- // XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
- // XmlSerializer serializer = factory.newSerializer();
- XmlSerializer serializer = Xml.newSerializer(); //由android.util.Xml创建一个XmlSerializer实例
- StringWriter writer = new StringWriter();
- serializer.setOutput(writer); //设置输出方向为writer
- serializer.startDocument("UTF-8", true);
- serializer.startTag("", "books");
- for (Book book : books) {
- serializer.startTag("", "book");
- serializer.attribute("", "id", book.getId() + "");
- serializer.startTag("", "name");
- serializer.text(book.getName());
- serializer.endTag("", "name");
- serializer.startTag("", "price");
- serializer.text(book.getPrice() + "");
- serializer.endTag("", "price");
- serializer.endTag("", "book");
- }
- serializer.endTag("", "books");
- serializer.endDocument();
- return writer.toString();
- }
- }
xml文件解析和序列化的更多相关文章
- Android -- 创建XML文件对象及其序列化, pull解析XML文件
1. 创建XML文件对象及其序列化 示例代码:(模拟以xml格式备份短信到SD卡) SmsInfo.java, bean对象 /** * 短信的业务bean * @author Administrat ...
- 通过正则表达式实现简单xml文件解析
这是我通过正则表达式实现的xml文件解析工具,有些XHTML文件中包含特殊符号,暂时还无法正常使用. 设计思路:常见的xml文件都是单根树结构,工具的目的是通过递归的方式将整个文档树装载进一个Node ...
- 八、Android学习第七天——XML文件解析方法(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 八.Android学习第七天——XML文件解析方法 XML文件:exten ...
- android基础知识13:AndroidManifest.xml文件解析
注:本文转载于:http://blog.csdn.net/xianming01/article/details/7526987 AndroidManifest.xml文件解析. 1.重要性 Andro ...
- Android之AndroidManifest.xml文件解析
转自:Android学习笔记之AndroidManifest.xml文件解析 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文 ...
- 9.XML文件解析
一.XML简介 XML(EXtensible Markup Language),可扩展标记语言 特点:XML与操作系统.编程语言的开发平台无关 实现不同系统之间的数据交换 作用:数据交互 配置应用程序 ...
- Python实现XML文件解析
1. XML简介 XML(eXtensible Markup Language)指可扩展标记语言,被设计用来传输和存储数据,已经日趋成为当前许多新生技术的核心,在不同的领域都有着不同的应用.它是web ...
- Python3将xml文件解析为Python对象
一.说明 从最开始写javascript开始,我就很烦感使用getElementById()等函数来获取节点的方法,获取了一个节点要访问其子孙节点要么child半天要么就再来一个getElementB ...
- XML文件解析-DOM4J方式和SAX方式
最近遇到的工作内容都是和xml内容解析相关的. 1图片数据以base64编码的方式保存在xml的一个标签中,xml文件通过接口的方式发送给我,然后我去解析出图片数据,对图片进行进一步处理. 2.xml ...
随机推荐
- WinThruster中文版破解方法(注册表无伤清理工具)
每次卸载完软件,都会有注册表残余垃圾,久而久之电脑会越来越慢,winThruster可以检测出系统无用注册表,并删除. 1.解压文件,安装Setup_WinThruster_2015.exe文件. 2 ...
- 一、MyBatis简介
1.发展历史 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBa ...
- Owin asp.net 脱离 IIS
http://www.cnblogs.com/jesse2013/p/owin-webserver.html
- sql之外键变种
多对一 : 只需设个外键 外键变种之一对一:普通外键关联的表是一对多关系,如果外键上再加上唯一索引,表就会变成一对一关系. 外键变种之多对多:
- Markdown编写github README.md
Markdown编写github README.md 一.在线编辑器StackEdit Markdown在线编辑器地址 中文:https://www.zybuluo.com/mdeditor 英文:h ...
- C#读写Access数据库、表格datagridview窗体显示代码实例
C#读写Access数据库.表格datagridview窗体显示代码实例 最近项目中用到C#对于Access数据库表读写.mdb操作,学习了下相关的东西,这里先整理C#对于Access数据库的操作,对 ...
- UVa 1001 Say Cheese (Dijkstra)
题意:给定一个三维空间的一些球和起始位置和结束位置,问你最短要花的时间是多少. 析:建图,所有的位置都建立图,边权就是距离,最小求一次最短路即可. 代码如下: #pragma comment(link ...
- 真正可用的Asdoc生成工具及技巧和注意事项
经过一个上午的折腾,终于总结出一套完全能够正确运行得到asdoc api的工具.使用方便,里面写了许多注意事项,帮你顺利完成 api 的生成. :: 注意: :: 1.所以 ...
- Weekly Contest 111-------->943. Find the Shortest Superstring(can't understand)
Given an array A of strings, find any smallest string that contains each string in A as a substring. ...
- github新手使用
1.首先要先在github的官网注册一个属于自己的账号.https://github.com/ 2.注册完成后需要一些简单的设置,先创建一个属于自己的仓库,repository 3.创建仓库 4.如何 ...