Android XML文件解析的三种方法

01.01_XML简介

    [1]什么是XMl

        XML 指[可扩展][标记语言](EXtensible Markup Language)

        XML 是一种标记语言,很类似 [HTML]

        XML 的设计宗旨是传输数据,而非显示数据

        XML 标签没有被预定义。您需要自行定义标签。

        XML 被设计为具有自我描述性。

        XML 是 W3C 的推荐标准  

    [2]为什么要用XMl

        XML 可扩展标记语言

        XML 被设计用来传输和存储数据

        XML (重要)可以用来做配置文件   

01.02_XML的声明

    [1]定义一个xml文件,格式是固定的

    [2]如何验证一个xml文件是否正确呢,直接浏览器查看就可以了

    [3]xml的编码

01.03_XML的语法

    [1]所有 XML 元素都须有关闭标签

    [2]XML 标签对大小写敏感

    [3]XML 必须正确地嵌套

    [4]XML 文档必须有根元素

    [5]XML 的属性值须加引号

    [6]XML 中,一些字符拥有特殊的意义.需要转义。比如 < 等于 &lt;

    [7]XML 中的注释\

    [8]在 XML 中,空格会被保留

    [9]CDATA区  所有 XML 文档中的文本均会被解析器解析。只有 CDATA 区段(CDATA section)中的文本会被解析器忽略。

        <![CDATA[

            ...

        ]]>

01.04_XML中元素的概念

    [1]XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。

    [2]元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性

    [3]命名规则

        [3.1]名称可以含字母、数字以及其他的字符

        [3.2]名称不能以数字或者标点符号开始

        [3.3]名称不能以字符 “xml”(或者 XML、Xml)开始

        [3.4]名称不能包含空格

01.05_xml中三种解析方式介绍

    [1]dom解析 Document Object Model 官方推荐的标准

        原理:把xml文件加载到内存当中,在内存中形成一个树形结构

        优点:可以进行增删改查

        缺点:容易内存泄漏

    [2]sax解析 Simple Api For Xml 不是官方推荐的标准 是从一个程序员社区研究出来的

        原理:一边解析 一边处理 一边释放内存 实际上就是一行一行的读

        优点:不会内存泄漏

        缺点:不能够对数据进行增删改

        API Application programming Interface应用程序接口

    [3]xmlPull解析 Android中内置的解析器 这个必须会

        原理:类似sax

    [4]3种解析方法 只有思想 并没有提供相应的api实现

        sun公司提供了一套接口Jaxp Java API For Xml processing 实现dom和sax解析

01.06_dom解析

    dom解析会把xml元素 属性 文本 都当成节点

    

    [1]javax.xml.parsers

    [2]DocumentBuilder 使其从 XML 文档获取 DOM 文档实例。使用此类,应用程序员可以从 XML 获取一个 Document

    [3]DocumentBuilderFactory  使应用程序能够从 XML 文档获取生成 DOM 对象树的解析器

    [4]Document XML 文档

    步骤

        [1]获取DocumentBuilderFactory 解析器工厂

        [2]获取DocumentBuilder 解析器

        [3]解析xml文件 获取Document 整个文档对象

        [4]获取xml里面的内容

        [5]获取节点里面每次个节点对象

01.07_sax解析

    步骤:

        [1]获取一个 SAXParserFactory 解析器工厂

        [2] 获取一个SAXParser 解析器

        [3]开始解析xml

  代码:

01.08_xmlpull解析把数据封装到javaBean中

    xmlPull解析 Android中内置的解析器 这个必须会

    

    原理:类似sax    

    与sax区别:sax强制解析所有,xmlPull解析可控,想解析哪个哪里就解析哪里

    事件类型:

      public static final int START_DOCUMENT = 0;

      public static final int END_DOCUMENT = 1;

      public static final int START_TAG = 2;

      public static final int END_TAG = 3;

      public static final int TEXT = 4;

    

    步骤

        [1]获取一个 XmlPullParserFactory 解析工厂

        [2]获取一个 XmlPullParser

        [3]读取xml文档

        [4]获取事件类型

        5]解析器向下移动

猜你喜欢

转载自blog.csdn.net/Cricket_7/article/details/82692834