您的位置:首页 > Web前端

【幻化万千戏红尘】qianfengDay28-XML解析之SAX和PULL解析基础学习:

2016-08-17 18:50 344 查看
课程回顾:

HTTP协议:超文本传输协议

目前互联网中使用最为广泛的通信协议

URL:统一资源定位符

常用的方式:

1、HttpURLConnection

使用步骤:
1、创建URL对象
2、创建连接对象
3、设置请求属性
4、连接
5、验证状态响应码
6、获取服务器响应信息
7、释放

2、okHttp

使用步骤:
1、创建客户端对象
2、创建请求内容对象(POST)
3、创建请求对象
4、创建响应对象
5、验证是否成功
6、获取响应内容

今日内容:

XML:EXtensible Markup Language:可扩展的标记性语言

是跨平台、跨网络、跨编程语言一种数据描述的语言

XML设计出来是为了描述数据,可以实现在不同的网络、平台、编程语言进行数据的交互

XML的用处:

1、传输数据

2、配置文件

XML语法规则:

1、区分大小写

2、标签有始有终

3、标签自定义

4、标签可以嵌套使用

5、属性的值必须使用双引号

6、必须以根标签开始和结束

XML和HTML的区别?

XML:

1、描述数据

2、区分大小写

3、语法更严谨

4、标签自定义

HTML:

1、显示数据

2、不区分大小写

3、语法不是很严谨

4、标签固定

XML格式:

1、引导区

<?xml version="1.0" encoding="UTF-8"?>

必须在文档的第一行

指明xml的版本和文档的编码格式

2、数据区

都是自定义标签

根标签:文档中唯一

必须以根标签开始和结束

XML的解析方式:

1、SAX

JAVA源生的解析方式

读着解析着

以事件驱动的形式,返回事件通知自动调用对应的方法进行数据的处理

2、PULL

Android中极力推荐的解析方式,谷歌开发

以事件驱动进行,返回事件常量,需要程序员控制事件的进行

解析XML的方式和步骤:

一、SAX解析XML步骤:

1、根据XML模板创建类

2、创建DefaultHandle的子类并重写需要的方法
重写方法:
1、startDocument() 接收文档开始的通知
2、endDocument() 接收文档结束的通知
3、startElement(String uri, String localName, String qName, Attributes attributes) 
接收元素开始的通知,开始标签
参数说明:
第一个参数:命名空间 ,区分同名的标签名称
第二个参数:本地节点名称,就是命名空间的别名
第三个参数:开始标签名称
第四个参数:属性集
Attributes:属性集接口,记录的都是开始标签的属性内容
常用方法:
1、getLength:获取属性个数
2、getQName:获取属性名称
3、getValue:获取属性的值
4、endElement(String uri, String localName, String qName) 
接收元素结束的通知,结束标签
参数说明:
第一个参数:命名空间 ,区分同名的标签名称
第二个参数:本地节点名称,就是命名空间的别名
第三个参数:开始标签名称
5、characters(char[] ch, int start, int length)
接收元素中字符数据的通知,文本内容
参数说明:
第一个参数:字符数组
第二个参数:文本内容的起始索引
第三个参数:文本内容的字符个数

3、创建解析工厂

4、创建解析器

5、创建自定义DefaultHandle类的子类对象

6、开始解析--parse

7、获取解析结果

二、PULL解析XML步骤:

1、根据xml模板创建类

2、创建解析工厂

3、创建解析器

4、设置解析的数据源

5、开始解析

XmlPULLParse

常用方法:

getEventType:获取初始事件

getName:获取标签的名称

getText:获取文本内容

getAttributeCount:获取属性个数

getAttributeName:获取属性名称

getAttributeValue:获取属性的值
重载方法:
1、第一个参数属性的索引
2、第一个参数命名空间,第二个参数属性名称

next:获取下一个事件

nextText:获取下一个文本事件(只能获取开始标签和结束标签之间的文本内容)

Pull的事件常量:

0---START_DOCUMENT:开始文档

1---END_DOCUMENT:结束文档

2---START_TAG:开始标签

3---END_TAG:结束标签

4---TEXT:文本内容

SAX和PULL解析的区别?

SAX:

自动

无法控制事件的终止

PULL:

手动

可以自己控制事件的发展
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: