- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
XML解析三种方法
三种解析XML文件的方法
在Android平台上可以使用Simple API for XML(SAX) 、 Document Object Model(DOM)和Android附带的pull解析器解析XML文件。 下面是本例子要解析的XML文件:
文件名称:china.xml
?xml version=1.0 encoding=UTF-8?
persons
person id=23
nameliming/name
age30/age
/person
person id=20
namezhangxiaoxiao/name
age25/age
/person
/persons
例子定义了一个javabean用于存放上面解析出来的xml内容, 这个javabean为Person,代码:
--------------------------------------------------------------
?
public class Person {
private Integer id;
private String name;
private Short age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
= name;
}
public Short getAge() {
return age;
}
public void setAge(Short age) {
this.age = age;
}
}
--------------------------------------------------------------
?
使用SAX读取XML文件
?
SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于Android等移动设备。 SAX解析XML文件采用的是事件驱动,也就是说,它并不需要解析完整个文档,在按内容顺序解析文档的过程中,SAX会判断当前读到的字符是否合法XML语法中的某部分,如果符合就会触发事件。所谓事件,其实就是一些回调(callback)方法,这些方法(事件)定义在ContentHandler接口。下面是一些ContentHandler接口常用的方法:
startDocument()
当遇到文档的开头的时候,调用这个方法,可以在其中做一些预处理的工作。
endDocument()
和上面的方法相对应,当文档结束的时候,调用这个方法,可以在其中做一些善后的工作。
startElement(String namespaceURI, String localName, String qName, Attributes atts)
当读到一个开始标签的时候,会触发这个方法。namespaceURI就是命名空间,localName是不带命名空间前缀的标签名,qName是带命名空间前缀的标签名。通过atts可以得到所有的属性名和相应的值。要注意的是SAX中一个重要的特点就是它的流式处理,当遇到一个标签的时候,它并不会纪录下以前所碰到的标签,也就是说,在startElement()方法中,所有你所知道的信息,就是标签的名字和属性,至于标签的嵌套结构,上层标签的名字,是否有子元属等等其它与结构相关的信息,都是不得而知的,都需要你的程序来完成。这使得SAX在编程处理上没有DOM来得那么方便。
endElement(String uri, String localName, String name)
这个方法和上面的方法相对应,在遇到结束标签的时候,调用这个方法。
characters(char[] ch, int start, int length)
这个方法用来处理在XML文件中读到的内容,第一个参数为文件的字符串内容,后面两个参数是读到的字符串在这个数组中的起始位置和长度,使用new String(ch,start,length)就可以获取内容。
下面是SAX事件的说明:
-------------------------------------------------------------?
?xml version=1.0 encoding=UTF-8?
persons
person id=23
name李明/name
您可能关注的文档
最近下载
- 头晕的诊断及鉴别.pptx VIP
- 2023年南昌航空大学网络工程专业《数据库原理》科目期末试卷B(有答案).docx VIP
- 虚拟电厂关键技术辅助服务实施方案.pdf
- 辽宁省名校联盟2023-2024学年高一下学期3月联合考试语文试题含答案.docx
- 人教版三年级上册寒假数学计算题每日一练及答案(共20天).docx VIP
- 五年级下册《因数与倍数》单元试卷.doc VIP
- 《小学信息技术》第三册(上)第二课《插入艺术字》教学设计案例.doc
- 教科版三年级下册科学同步练习全册教学课件.pptx
- 公司(第一级)安全教育记录GDAQ20503.xls VIP
- 项目部(第二级)安全教育记录GDAQ20504.xls VIP
文档评论(0)