欢迎来到天天文库
浏览记录
ID:6070611
大小:224.50 KB
页数:13页
时间:2018-01-02
《android下解析xml》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Android下解析xml的三种方式在Android平台上可以使用Simple API forXML(SAX)、DocumentObjectModel(DOM)和Android附带的pull解析器解析XML文件。下面是本例子要解析的XML文件:itcast.xml01 02 03 04 李明 05 30 06 07
2、08 李向梅 09 25 10 11例子定义了一个javabean用于存放上面解析出来的xml内容,这个javabean为Person,代码:01public classPerson{ 02 03 privateIntegerid; 04 privateStringname; 05privateShortage; 06 07 publicIntegergetId(){ 08 returnid; 09 } 10
3、 11 public voidsetId(Integerid){ 12 this.id=id; 13 } 14 15 publicStringgetName(){ 16 returnname; 17 } 18 19 public voidsetName(Stringname){ 20 this.name=name; 21} 22 23 publicShortgetAge(){ 24 returnage; 25 } 26 27 pub
4、lic voidsetAge(Shortage){ 28 this.age=age; 29 } 30}1.SAX解析XML文件 SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于Android等移动设备。 SAX解析XML文件采用的是事件驱动,也就是说,它并不需要解析完整个文档,在按内容顺序解析文档的过程中,SAX会判断当前读到的字符是否合法XML语法中的某部分,如果符合就会触发事件。所谓事件,其实就是一些回调(callback)方法,这些方法(事件)定义在ContentHandler接口。01public
5、staticListreadXML(InputStreaminStream){ 02 try{ 03 //创建解析器 04 SAXParserFactoryspf=SAXParserFactory.newInstance(); 05 SAXParsersaxParser=spf.newSAXParser(); 06 07 //设置解析器的相关特性,true表示开启命名空间特性 08 saxParser.setProper
6、ty("http://xml.org/sax/features/namespaces",true); 09 XMLContentHandlerhandler= newXMLContentHandler(); 10 saxParser.parse(inStream,handler); 11 inStream.close(); 12 13 returnhandler.getPersons(); 14 } catch(Exceptione){ 15
7、 e.printStackTrace(); 16 } 17 18 returnnull; 19} 20 21 22//SAX类:DefaultHandler,它实现了ContentHandler接口。在实现的时候,只需要继承该类,重载相应的方法即可。 23public class XMLContentHandler extendsDefaultHandler{ 24 25 privateListpersons= null; 26 privatePersoncurren
8、tPerson; 27 privateStringtagN
此文档下载收益归作者所有