课程回顾:
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:
手动
可以自己控制事件的发展