登录不老阁

 
注册成功

二呆

diamond@tongleer.com

岂能尽如人意,但求无愧我心。

【Android】学习札记第8章之XML及处理XML解析和创建

2017-6-11 二呆 Android 477观看

XML是可扩展的标记语言,结构化的数据,由程序解析数据。对于XML的定义,在文档类型定义在一个领域内,由组织、企业、技术领域,指定的XML规范,而这种规范就是DTD。

java/android中处理XML解析和创建可以使用三大工具:

SAX:Simple API for XML

DOM4J:Document Object Model for Java

Pull:Android集成的一个开源开发包

而android系统中集成了Pull,用来解析、创建XML。

工具/原料

JDK、eclipse、android SDK、ADT

一、XML规范——DTD

1、定义(定义好后可使用快捷键):

在文档类型定义在一个领域内,由组织、企业、技术领域,指定的XML规范。

2、引用:

系统内部规范:、在dtd文件中只插入之间的内容。

对当前软件系统公开统一的规范:

二、java/android中三大处理XML解析、创建工具

1、SAX:

㈠SaxParserFactory

负责创建Sax解析器的工厂(需要先建立工厂,再建立解析器。)

㈡SaxParser

Sax解析器,用来解析xml文档

㈢DefaultHandler

解析过程中,用来处理从xml提取出来的数据(xml中从头到尾提取数据)

2、DOM4J:

①第三方解析XML开发包,在内存中生成一个树状结构,API参考官方文档。

②XPath

用路径的形式来表示数据的位置

/email/to/to-email:定位到to-email

/email/body:定位到body

/email/@date:定位到属性date

/email//to-email:定位到email下所有的to-email

//to-email:定位到根下的to-email

③Node

——Document

——Element

——Text

——Attribute

——Comment

——CDSect

④创建树

Document doc=DocumentHelper.createDocument();//创建树根

XMLWriter writer=new XMLWriter(输出流out,格式控制工具format);

out=FileOutputStream();

OutputFormat format=OutputFormat.createCompactFormat();//压缩格式

OutputFormat format=OutputFormat.createPrettyPrint();//有换行格式

format.setEoding("utf-8");

…………

3、XML PULL:(需要新建android项目)

①概述,第三方开源API,已经集成到android开发包中。

XmlPullParserFactory

Xml:辅助类

XmlPullParser

XmlSerializer

②使用方法

Ⅰ、XmlPullParserFactory

A、负责创建解析器和序列化器的工厂类

B、创建对象:

XmlPullParserFactory f=XmlPullParserFactory.newInstance();

C、方法:

newPullParser():创建解析器

newSerializer():创建序列化器

Ⅱ、Xml

Xml.newPullParser():创建解析器,解析XML

Xml.newSerializer():创建序列化器,生成XML

③XmlPullParser解析器:

setInput(Reader in):设置输入流。

setInput(InputStream in,String charset):设置输入流并指定字符编码。

next():跳到下一段,返回int数字代码,表示跳到的数据类型,结束之后,再向回跳,返回。

XmlPullParser.END_DOCUMENT==1。

getEventType():获得当前的位置数据类型的代码。

getName():数据类型是XmlPullParser.START_TAG、XmlPullParser.END_TAG时,在开始标签和结束标签上,获得标签名。

getText():数据类型是:XmlPullParser.TEXT时,如果当前位置是文本数据,用这个方法,可以去除文本内容。

getAttributeCount():获得属性的数量。

getAttributeName():获得属性名。

getAttributeValue():获得属性值。

getAttributeValue(命名空间,属性名):命名空间,属性名:获得指定属性名称对应的值。

④XmlSerializer生成XML:向用户申请外部存储权限:WRITE_EXTERNAL_STORAGE

setOutput(Writer out):设置输出流。

setOutput(Writer out,编码):设置输出流并指定字符编码。

startDocument(编码,是否是独立文件):输出头标签,true表示不依赖其他文档。

startTag():输出开始标签。

attribute():输出属性。

text():输出文本。

endTag():输出结束标签。

注意事项

XML编写时要规范

android中集成了Pull处理XML的工具,所以要重点掌握。

« 【Android】学习札记第9章之模拟安卓用户登录模块 | 【Android】学习札记第7章之IO流三及XML初步»

  • 觉得很赞 (0)
  • 打赏
  • X
    打赏
    • 微信
    • QQ红包
    • 支付宝


    用微信扫一扫

    您的鼓励将是站长及作者前行的动力,谢谢打赏
    (若二维码有误可举报)

发表评论:

快乐贰呆的关注更多 >

小草窝博客

博主是一名天朝的学生,喜欢折腾各种奇怪的语言,喜欢探索未知的事情

图床

微博图床

搜索

标签

Genymotion Button HTML 腾讯视频 Win10 火腿肠意面 MIUI 主题编辑器 Android emlog pjax EventBus AndroidStudio 快捷键 倒计时 工具类 eclipse javascript 励志语录 自定义Dialog Demo java 热伤风 redis RabbitMQ ZeroMQ ActiveMQ Kafka Jafka php 鸡蛋饼 直播 继承 面向对象 工厂模式 AutoCompleteTextView GridView RadioButton ToggleButton Android开发入门 EditText CheckBoxes 控件 TimePicker AnalogClock DigitalClock ProgressBar SeekBar RatingBar UI控件 Spinner ScrollView Adapter 单元测试 Dialog 自定义对话框 Android项目 布局 Android视频 Java4Android Android开发教程 学习札记 基本数据类型 运算符和流程控制 流程控制循环语句 数组 数组二 二维数组 安卓基础 安卓监听器 表格布局 帧布局 网格布局 Android异常 AndroidIO XML XML解析 用户登录 数据存储 SQLite内部数据存储 Unity3D教程 Linux subversionSVN TortoiseSVN ViewPager Fragment 预加载 Android实战开发 唯一识别码 锁屏 Activity CheckBox ListView 增删改查 图片回收处理 内存溢出 仿2列商品列表 AndroidNDK eclipse插件 jni开发 jni调用 so文件 Androidmk配置 Flash 绘制图形 苹果 图标 变形工具 滤镜 Flash特效 简单薄餐 Flash滤镜 Flash动画 Android开发 天气预报 醋溜白菜 香菇烩豆腐 微波豆腐蒸蛋 速成凉拌豆腐 杜子建 穷根 男装搭配 黄帝内经 大蒜洋葱粥 情商密码 中华药粥 交际红人 小白菜萝卜粥 每日一笑 完美国际 故梦 一卷情长 Ukulele 白熊音乐 零基础 指弹 教程 白桦树娃娃 新加坡 网红美食 海南鸡饭

公众号

同乐儿

链接更多 >