- 浏览: 87311 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
wangyudong:
家里是拨号上网,不行的,找到了一个Holer工具,只需要配置一 ...
【如何通过广域网访问局域网的服务器?】 -
叮咚可乐名:
大数据就是这么任性第一季数据结构和算法http://pan.b ...
数据结构与算法-简介 -
戢_时光:
...
【Java集合之二】Set集合 -
lzg406:
HTTP默认方式下,使用持久连接。 这个值得推敲
【应用层】之一:HTTP协议与FTP协议 -
mute_:
特别腻害呢
正则表达式1:概念
本文围绕以下三个部分展开:
一、Simple解析
二、四种XML解析器小结
案例一
一、Simple解析
1. Simple 是一个 Java 框架,用于简化序列化和反序列化 XML 的过程。
使用 Simple,开发人员可以简化(名字由此而来)将Java 对象(POJO)转换成 XML 文档的过程 — 即所谓的序列化(serialization)过程。Simple 也可促进相反的过程:开发人员可以将 XML 文档转换成 POJO — 即所谓的反序列化(deserialization)过程。
2. Simple 使用注解来支持序列化和反序列化过程。根据相应的 XML 文档应该如何出现,对 POJO 进行注解。
一些字段被注解为属性,另一些字段被注解为元素。类通常被注解为根元素。
在序列化过程中,该框架处理冗长的解释注解和产生相应 XML 文档的过程;在 XML 文档被转换成 POJO 的反序列化过程中,注解也会被解释。
3. 优点:
(1)上手很快
(2)操作简便易懂
(3)基于注解实现,零配置
(4)可以自定义模板XML
(5)支持序列化和反序列化
(6)泛型支持比较好
4. 缺点
(1)必须要依赖POJO类
(2)只能生成XML
5. 更多,请学习:http://simple.sourceforge.net/home.php
二、四种XML解析器小结
XML解析器可理解为解析XML数据的程序。
1.DOM是一个API,它用于表示文档,并访问和操作组成文档的各种元素。DOM 解析 XML 文档并返回 Document 类的实例。
2.SAX是一组操作XML的API。它使用一种事件机制,程序员必须对方法进行编码以处理由解析器引发的事件。
3.XML Pull API在易用性方面要比SAX方式有所提高;在执行效率方面又要比DOM方式有优势。
4.Simple操作简便易懂,基于注解实现零配置,支持序列化和反序列化。
Pull解析XML(读、写)最重要,必须熟练掌握;Simple解析(读)次重要;SAX、DOM了解即可。
案例一
1. 将 simple-xml-2.6.9.jar 文件,拷贝到 libs文件夹下,然后编译。
2. 创建 com.android.pojo 包,里面创建 Student.java 的 pojo 类,用来封装XML文件中的一条记录。
3. 在测试包下面创建一个单元测试类:StudentServiceTest,用于进行JUnit单元测试。
这样,即可创建XML文件和读取XML文件。
一、Simple解析
二、四种XML解析器小结
案例一
一、Simple解析
1. Simple 是一个 Java 框架,用于简化序列化和反序列化 XML 的过程。
使用 Simple,开发人员可以简化(名字由此而来)将Java 对象(POJO)转换成 XML 文档的过程 — 即所谓的序列化(serialization)过程。Simple 也可促进相反的过程:开发人员可以将 XML 文档转换成 POJO — 即所谓的反序列化(deserialization)过程。
2. Simple 使用注解来支持序列化和反序列化过程。根据相应的 XML 文档应该如何出现,对 POJO 进行注解。
一些字段被注解为属性,另一些字段被注解为元素。类通常被注解为根元素。
在序列化过程中,该框架处理冗长的解释注解和产生相应 XML 文档的过程;在 XML 文档被转换成 POJO 的反序列化过程中,注解也会被解释。
3. 优点:
(1)上手很快
(2)操作简便易懂
(3)基于注解实现,零配置
(4)可以自定义模板XML
(5)支持序列化和反序列化
(6)泛型支持比较好
4. 缺点
(1)必须要依赖POJO类
(2)只能生成XML
5. 更多,请学习:http://simple.sourceforge.net/home.php
二、四种XML解析器小结
XML解析器可理解为解析XML数据的程序。
1.DOM是一个API,它用于表示文档,并访问和操作组成文档的各种元素。DOM 解析 XML 文档并返回 Document 类的实例。
2.SAX是一组操作XML的API。它使用一种事件机制,程序员必须对方法进行编码以处理由解析器引发的事件。
3.XML Pull API在易用性方面要比SAX方式有所提高;在执行效率方面又要比DOM方式有优势。
4.Simple操作简便易懂,基于注解实现零配置,支持序列化和反序列化。
Pull解析XML(读、写)最重要,必须熟练掌握;Simple解析(读)次重要;SAX、DOM了解即可。
案例一
1. 将 simple-xml-2.6.9.jar 文件,拷贝到 libs文件夹下,然后编译。
2. 创建 com.android.pojo 包,里面创建 Student.java 的 pojo 类,用来封装XML文件中的一条记录。
package com.android.pojo; import org.simpleframework.xml.Attribute; import org.simpleframework.xml.Element; import org.simpleframework.xml.Root; /** * <student id=""> * <name></name> * <score></score> * </student> * * Created by Xiangdong on 2015/8/26. */ @Root public class Student { @Attribute private int id; @Element private String name; @Element private int score; @Override public String toString() { return "Student{" + "stu_id=" + id + ", name='" + name + '\'' + ", score=" + score + '}'; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } }
3. 在测试包下面创建一个单元测试类:StudentServiceTest,用于进行JUnit单元测试。
package com.android.dataparsing; import android.os.Environment; import android.test.InstrumentationTestCase; import android.util.Log; import com.android.pojo.Student; import org.simpleframework.xml.Serializer; import org.simpleframework.xml.core.Persister; import java.io.File; /** * Junit 单元测试 -- 要先连接真机/模拟器。 * 第一步.继承 InstrumentationTestCase 测试案例类 * 第二步.定义测试方法:方法名必须以 小写的 testXxx 开头 * 第三步.选中方法名,右击 -> Run -> testXxx() * <p/> * Created by Xiangdong Lee on 2015/8/26. */ public class StudentServiceTest extends InstrumentationTestCase { private static final String TAG = "MainActivity"; public void testSimpleCreateXml() throws Exception{ Serializer serializer = new Persister(); Student student = new Student(); student.setId(9999); student.setName("Smith"); student.setScore(80); File dir = Environment.getExternalStorageDirectory(); File file = new File(dir,"student.xml"); serializer.write(student, file); } public void testSimpleReadXml() throws Exception{ Serializer serializer = new Persister(); File dir = Environment.getExternalStorageDirectory(); File source = new File(dir,"student.xml"); Student student = serializer.read(Student.class,source); Log.i(TAG, student.toString()); } }
这样,即可创建XML文件和读取XML文件。
发表评论
-
【攻克Android (43)】WebView (网络视图)
2015-09-09 22:15 1205本文围绕以下两个部分展开: 一、WebView WebVi ... -
WebView (网络视图)
2015-09-09 22:12 0本文围绕以下两个部分展开: 一、WebView WebVi ... -
【攻克Android (41)】HttpURLConnection
2015-09-08 17:43 1304本文围绕以下三个部分展开: 一、HttpURLConnec ... -
HttpURLConnection
2015-09-08 17:42 0本文围绕以下三个部分展开: 一、HttpURLConnec ... -
【攻克Android (40)】JSON解析
2015-09-07 20:49 1231本文围绕以下三个部分 ... -
JSON解析
2015-09-07 20:47 0本文围绕以下三个部分 ... -
【攻克Android (38):XML解析之三】Pull方式解析XML
2015-08-27 09:25 1684本文围绕以下两个部分展开: 一、Pull解析 案例一:P ... -
【攻克Android (37):XML解析之二】SAX方式解析XML
2015-08-26 15:15 838本文围绕以下两个部分展开: 一、SAX解析 案例一 ... -
【XML解析之一】SAX方式解析XML
2015-08-26 02:58 0本文围绕以下四个部分展开: 一、SAX解析 案例一 ... -
【攻克Android (36):XML解析之一】DOM方式解析XML
2015-08-26 00:27 886本文围绕以下三个部分展开: 一、XML概述 二、DOM解析 ... -
DOM方式解析XML案例
2015-08-26 00:26 0本文围绕以下四个部分展开: 一、DOM解析 案例一 ... -
【XML解析之四】Simple方式解析XML
2015-08-27 18:36 0本文围绕以下三个部分 ... -
【XML解析之一】Pull方式解析XML
2015-08-26 02:56 0本文围绕以下四个部分展开: 一、Pull解析 案例一:P ... -
【攻克Android (22)】View/Tween Animation 视图动画(补间动画)
2015-08-25 21:22 833本文围绕以下四个部分 ... -
【攻克Android (22)】View/Tween Animation 视图动画(补间动画)
2015-08-25 21:21 0本文围绕以下四个部分 ... -
【攻克Android (45)】四大组件之 ContentProvider
2015-08-18 16:24 1000本文围绕以下两个部分展开: 一、ContentProvide ... -
【攻克Android (32)】Notification 通知
2015-08-17 19:57 889本文围绕以下两个部分展开: 一、通知 案例一 一 ... -
Notification 通知
2015-08-17 19:56 0本文围绕以下两个部分展开: 一、通知 案例一 一 ... -
BroadcastReceiver完整版
2015-08-17 13:15 0本文围绕以下四个部分展开: 一、广播 案例一:系统广播(属于 ... -
【攻克Android (33)】四大组件之 BroadcastReceiver
2015-08-17 13:14 1066本文围绕以下三个部分 ...
相关推荐
搞懂XML,看清SOAP,攻克BizTalk
2021版高考化学一轮复习热点突破微课10利用电池工作原理攻克新型电池练习含解析鲁科版
徐绽三层递进攻克考研英语阅读真题1994解析 徐绽 英语 真题解答
攻克日语学习难点:-录音带”原则.docx
藏经阁-攻克痛点:如何保证复杂微服务架构下的数据一致性.pdf
3-2 攻克 36TB LDBC:TigerGraph可扩展图数据和分析平台
Android 程序技术 本节课程内容:开拓创新 开拓创新 开拓创新 Blaze new trails in a pioneering spirit 开拓创新 Blaze new trails in a pioneering spirit 创新区别于发明 发明是从无到有,而创新是除旧创新。从...
考研英语长句、难句解析。。。。。 一、课程简介: 1、考研的两个难点:词汇和长难句 2、攻克长难句对于考研的意义:完型、阅读、新题型、翻译 3、如何攻克长难句:剖析其结构、总结其特征、推敲其译文 4、阅读和...
江苏省2020届高考生物二轮复习考前专题增分大题冲关7攻克遗传实验设计题含解析
迈向2035:攻克数字经济下的人才战.pdf
2020_2021学年高考语文一轮复习专项对点练4增强层次意识攻克图表信息转述题含解析新人教版
想学好英语却却又找不到好方法的同志们注意啦:四级前的突击尽在此!
第1章 死磕源码,剑指荣耀【用源码武装你的竞争力】首先点明SB框架的“江湖地位”,学源码三大优势:团队核心、通关...系统***章节总结4-8 ***应用案例一4-9 ***应用案例二第5章 bean解析【一举攻克框架之魂】........
备战2019高考语文精讲巧解分类攻克:1Word版含答案.docx
迈向2035:攻克数字经济下的人才战精品报告.pdf
24学时攻克c++,这本书不错,不过只上传了23页
英语四六级考试词汇复习必备:8天攻克8000词汇(五).doc
24小时攻克c++代码
24学时攻克c++_ 笔记