xml语言基础-简单介绍

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

XML解析

一、XML基础

1)什么是XML

●XML是指可扩展标记语言(eXtensible Markup Language),它也是一种标记

语言,很类似HTML。它被设计的宗旨是存储数据,而非显示数据。

●Html展示数据

●XML标签没有被预定义,需要用户自行定义标签。

●XML技术是W3C组织(World Wide Web Consortium万维网联盟)发布的,目

前遵循的是W3C组织于2000年发布的XML1.0规范。

●XML被广泛认为是继Java之后在Internet上最激动人心的新技术。

2)XML常见应用

二、XML语法

1)文档声明

2)元素

3)属性

4)注释

5)实体引用及CDATA区

6)处理指令(了解即可)

7)XML约束(了解即可)

三、SAX解析

SAX(基于事件流的解析):省内存,程序可读性相比上述较差。

PULL(Android自带解析器):也是基于事件流的解析

本次,我们只学习SAX和PULL两种方式

正式来学习SAX解析

Simple APIs for XML,XML简单应用程序接口,在javax.xml.parsers包中,SAX解析是JDK自带的解析方式,包括一组接口和类

1)SAX解析原理

以事件驱动的方式解析,即找开始结束标签的方式

SAX的工作原理简单地说就是对文档进行顺序扫描,当扫描到文档(document)开始与结束、元素(element)开始与结束、等地方时通知事件处理函数,由事件处理函数做相应动作,然后继续同样的扫描,直至文档结束。

所以有两个关键点:顺序扫描,事件处理函数

2)案例:解析指定文件(标签无属性),并将文件中的信息存放到list

中--需要先创建XML文件

3)案例:解析指定文件(根标签有属性),并将文件中的信息存放到

list中

假设:我们给每个phone加一个id属性,那么在解析根节点的时候,就需要获取到id信息并赋值给对象。

四、PULL解析

在android系统中,很多资源文件中,很多都是xml格式,在android系统中解析这些xml的方式,是使用pul解析器进行解析的,它和sax解析一样,也是采用事件驱动进行解析的,同时,由于android内核已经内嵌了pull,所以我们不需要添加第三方的jar包来支持pull。

1)案例:解析XML文件(不带属性)

kxml2-2.2.2.jar

首先,需要jar包:

具体实现步骤如下:

基本上跟sax的解析思路是一样的。

几个关键的方法强调下:

获取其状态码,区分现在是哪个事件源(文档开头,文档结尾,标签开头,标签结尾)

获取标签名称

获取标签的文本内容

让指针继续往下解析下一个事件源

2)案例:解析XML文件(带属性)

3)PULL vs SAX

Pull解析器和SAX解析器虽有相似性但也有区别,他们的区别为:SAX解析器的工作方式是自动将事件推入注册的事件处理器进行处理,因此你不能控制事

五、作业

.

相关文档
最新文档