【网学网提醒】:网学会员,鉴于大家对Android解析XML文档十分关注,会员在此为大家搜集整理了“Android解析XML文档”一文,供大家参考学习!
Android解析XML文档
XML文档
饶伟计算机科学与技术812200157小伟网络工程812200156伟哥软件工程812200158 Java类
publicclassStudent{longId;StringName;StringSpeciality;longQQ;//…………省略构造方法和getter,setter方法}
ContentHandler接口
使用ContentHandler接口,一个供XML解析器调用以将分析XML文档时所发生的SAX事件分发给处理
程序的回调接口。
方便起见,SAXAPI也提供了一个已经实现了ContentHandler接口的DefaultHandler适配器类。
一但实现了ContentHandler或者扩展了DefaultHandler类,你只需直接将XML解析器解析一个特定的文档即可。实现一个类StudentHandler继承自DefaultHandler具体见源文件
XML_SaxActivity类
主要实现的方法:privateList
parserXMl(){//1:创建SAXParserFactory对象SAXParserFactoryfactory=SAXParserFactory.newInstance();Liststudents=null;Studentstudent=null;try{//2:根据SAXParserFactory.newSAXParser()方法返回一个SAXParser解析器//3:根据SAXParser解析器获取事件源对象XMLReaderXMLReaderreader=factory.newSAXParser().getXMLReader();students=newArrayList();//XMLReader通过相应事件处理器注册方法setXXXX()来完成的与//ContentHander、DTDHander、ErrorHandler,以及EntityResolver这4个接口
//的连接^^也可理解为安装ContentHandlerreader.setContentHandler(newStudentHandler(students));System.out.println("****"+students.size()+"***");//指定要解析的XML文档,指示XMLreader开始解析指定位置的XML文档reader.parse(newInputSource(XMl_SaxActivity.this.getResources().openRawResource(R.raw.student)));//这里的students中已经获得了XML文档中定义的3个Student对象System.out.println("**---**"+students.size()+"***");}catch(Exceptione){//TODO:handleexception}returnstudents;}
界面布局的实现