ml语言基础---简单介绍
- 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约束(了解即可)
为XML约束。
●常用得约束技术XML DTD, XML Schema
●作为普通工程师,一般就是使用别人得约束文件,而不会自己去写约束。例
如使用SSH框架开始时用到得xml文件,均要受框架得提供得xml得约束文件得约束
三、SAX解析
XML解析方式主要有:
DOM(文档对象模型):将整个文件以树得结构存储到内存中,适合小文件,程序可读性高。Dom4j
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解析器得工作方式就是自动将事件推入注册得事件处理器进行处理,因此您不能控制事件得处理主动结束;而Pull解析器得工作方式为允许您得应用程序代码主动从解析器中获取事件,正因为就是主动获取事件,因此可以在满足了需要得条件后不再获取事件,结束解析。
五、作业
解析books、xml文件,分别采用pull与sax得方式,要求独立编写完成。