zoukankan      html  css  js  c++  java
  • 【幻化万千戏红尘】qianfengDay28-XML解析之SAX和PULL解析基础学习:

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


     

  • 相关阅读:
    docker
    iOS开发之抓取花瓣网json数据
    iOS与Android工程项目的简单对比
    Android与iOS的比较
    Jenkins时间和centos时间相差八小时解决方法
    MYSQL中索引里面的基数是什么意思
    使用Java写一个minio的客户端上传下载文件
    Java 使用AOP实现打印日志
    macOS使用brew安装mysql8.x
    MacOS安装homebrew报错:curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
  • 原文地址:https://www.cnblogs.com/weigongcheng/p/5781182.html
Copyright © 2011-2022 走看看