预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

-------------------------------------SAX解析xml---------------------------------- 》Sax定义 SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于android等移动设备 SAX全称是SimpleAPIforXml,既是指一种接口,也是一个软件包 作为接口,sax是事件驱动型xml解析的一个标准接口 》Sax特点 1.解析效率高,占用内存少 2.可以随时停止解析 3.不能载入整个文档到内存缺点:不像DOM解析一样将文档长期驻留在内存中,数据不是持久的。如果事件过后没有保存数据,数据就会丢失。 4.不能写入xml 5.SAX解析xml文件采用的是事件驱动 ---sax并不需要解析完整个文档,在按内容顺序解析文档的过程中,sax会判断当前读到的字符是否合法xml语法中的某部分,如果符合就会触发事件 》Sax工作原理 Sax的工作原理简单的说,就是对文档进行顺序扫描,扫描到文档(document)开始与结束,扫描到元素(element)开始、结束等地方时调用事件处理 处理函数做相应动作,然后继续扫描,直到文档结束。 》Sax解析文档过程 1.继承DefaultHandler,并实现方法 2.创建SAX解析器工厂 3.获得解析器 4.获得输入流 5.使用输入流,和实现接口作参数,调用解析器的解析方法进行解析 》defaultHandler接口是实现contentHandler接口 ContentHandler接口中的常用方法 >startDocument() 当遇到文档开头的时候,调用这个方法,可以在其中做一些与准备工作 >endDocument() 当文档结束的时候,调用这个方法,可以在其中做一些善后工作 >startElement(StringnamespaceURL,StringlocalName,StringqName,Attributesatts) 当读到一个开始标签的时候,会触发这个方法。namespaceURL就是命名空间,localName是不带命名空间前缀的标签名, qName是待命名空间前缀的标签名。通过atts可以得到所有的属性名和相应的值。 >endElement(Stringuri,StringlocalName,Stringname) 当遇到结束标签的时候,调用这个方法 >characters(char[]ch,intstart,intlength) 这个方法用来处理在xml文件中读到的内容,第一个参数为文件的字符串内容,后面两个参数是读到的字符串在这个数组中的起始位置和长度, 使用newString(ch,start,length)就可以获取内容 》SAX解析实例 -------------1.在src下创建xml文件,并结合成实体类Userinfo.java------------- <?xmlversion="1.0"encoding="UTF-8"?><admins><adminid="1"><name>阿龙</name><age>23</age><sex>男</sex><email>along@qq.com</email></admin></admins> ----------Userinfo.java---- Stringname;intage;Stringsex;Stringemail;Stringid; 。。。生成get、set方法 --------------------2.创建XmlPaser继承defaultHandler---------------------- publicclassXmlPaserextendsDefaultHandler{ //创建user对象为把查到的内容放到里面 Userinfouser;publicUserinfogetUser(){returnuser;}publicvoidsetUser(Userinfouser){this.user=user;} //定义标签变量 StringtagName=null; //开始文档处理些准备工作 publicvoidstartDocument()throwsSAXException{user=newUserinfo();super.startDocument();} //读到第一个标签触发 publicvoidstartElement(Stringuri,StringlocalName,StringqName,Attributesattributes)throwsSAXException{tagName=localName;if("admin".equals(tagName)){user.setId(attrib