xml语言基础-简单介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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解析器的工作方式是自动将事件推入注册的事件处理器进行处理,因此你不能控制事
五、作业
.