【coder-pig教程学习笔记4】xml文件解析

前端之家收集整理的这篇文章主要介绍了【coder-pig教程学习笔记4】xml文件解析前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1.xml 是什么
全名叫 可扩展标记语言,一般用来存储数据,可以看作一个微型的数据库,比如 SharePreference 就是适用 xml 文件保存配置信息,sqlite 的底层也是一个 xml 文件。把数据包装成一个 xml 文件进行传递也是常用的做法。


2.xml 文件内容结构

<?xml version="1.0" encoding="UTF-8"?>(文档声明,声明当前文档为 xml 格式,采用 UTF-8 编码)
<persons>(开始元素(persons))
    <person id="1">(文本节点(空白文本) 开始元素(person) 属性<name>nameA</name>(文本节点(空白文本) 开始元素(name) 文本节点 结束元素(name))
        <age>ageOne</age>(文本节点(空白文本) 开始元素(age) 文本节点 结束元素(age))
    </person>(文本节点(空白文本) 结束元素(person))
    <person id="2">
        <name>nameB</name>
        <age>ageTwo</age>
    </person>
</persons>(结束元素(persons))

!缩进位置的空白处也是文本节点,为空白文本。


3.解析 xml 文件的三种方法

  1. SAX

    • 处理形式:对文档进行顺序扫描,当扫描到文档(document)开始与结束、元素(element)开始与结束等地方时通知事件处理函数,由事件处理函数执行相应动作,然后继续同样的扫描,直到文档末尾。采用流式解析,解析是同步的,读到哪里就处理到哪里。
    • 优点:解析速度快,占用内存少。
    • 缺点:每需要解析一类xml,就需要编写新的适合该类xml的处理类,用起来比较麻烦。

2.DOM

  • 处理形式:先把 xml 文档都读取到内存中,然后再用 DOM API 来访问树形结构,并获取数据。
  • 优点:写起来简单
  • 缺点:很消耗内存,假如读取的数据量较大,手机内存不够的话,可能导致手机死机

3.PULL

  • 处理形式:当某个元素开始时,可以调用 parser.nextText() 从 xml 文档中提取所有字符数据,当解析到一个文档结束时,自动生成 EndDocument
  • 优点:和 SAX 差不多,但代码写起来比 SAX 简单些,适合移动设备使用

猜你在找的XML相关文章