下周备课烟职13级android高级-t2_第1页
下周备课烟职13级android高级-t2_第2页
下周备课烟职13级android高级-t2_第3页
下周备课烟职13级android高级-t2_第4页
下周备课烟职13级android高级-t2_第5页
免费预览已结束,剩余11页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章Android网络处理(二)2本章目标Android中解析XML数据3预习检查提问1、什么是XML,XML文档结构,何为格式良好的XML文件。2、Java中的DOM方式解析XML。3、Java中的SAX方式解析XML。4DOM解析XMLDOM节点树5DOM解析XML父子节点关系6DOM解析XML7实现代码//通过工厂创建Dom解析对象实例DocumentBuilderdb=factory.newDocumentBuilder();//将xml文件输入流交给Dom解析对象进行解析,并将Dom树返回Documentdocument=db.parse(getResources().getAssets().open("test.xml"));//通过Dom树得到xml文件根元素ElementrootElement=document.getDocumentElement();//通过根元素获取下面所有名字为case节点NodeListnodeList=rootElement.getElementsByTagName("case");StringBuildersb=newStringBuilder();//遍历case节点for(inti=0;i<nodeList.getLength();i++){ElementcaseElement=(Element)nodeList.item(i);//获取case下所有的子节点NodeListcaseChildList=caseElement.getChildNodes();//遍历所有子节点for(inty=0;y<caseChildList.getLength();y++){8SAX解析XML9实现代码//自定义SAX解析类

classSaxHandlerextendsDefaultHandler{ @Override publicvoidstartDocument()throwsSAXException{ super.startDocument(); } @Override publicvoidendDocument()throwsSAXException{ super.endDocument(); } @Override publicvoidstartElement(Stringuri,StringlocalName,StringqName, Attributesattributes)throwsSAXException{//解析代码 } @Override publicvoidendElement(Stringuri,StringlocalName,StringqName) throwsSAXException{ //解析代码 } @Override publicvoidcharacters(char[]ch,intstart,intlength) throwsSAXException{//解析代码 }}}10实现代码//获取自定义解析器SaxHandlerhandler=newSaxHandler();//获取解析工厂类

SAXParserFactoryfactory=SAXParserFactory.newInstance();//定义包装XMLReader实现类的API。SAXParserparser=factory.newSAXParser();//用于使用回调读取XML文档的接口。XMLReaderreader=parser.getXMLReader();//应用程序注册内容事件处理程序reader.setContentHandler(handler);//解析XML文档。reader.parse(newInputSource(getResources().getAssets().open("test.xml")));11PULL解析XML12实现代码//获取XmlPullParser实例XmlPullParserparser=Xml.newPullParser();StringBuildersb=newStringBuilder();//将xml输入流交给XmlPullParser处理parser.setInput(getResources().getAssets().open("test.xml"),"UTF-8");//获取第一个事件intevent=parser.getEventType();while(event!=XmlPullParser.END_DOCUMENT){switch(event){//判断当前事件是否是文档开始事件caseXmlPullParser.START_DOCUMENT:break;//判断当前事件是否是标签元素开始事件caseXmlPullParser.START_TAG:......caseXmlPullParser.END_TAG:break;}//不断产生新的事件,当事件为文档结束的时候,退出循环。event=parser.next();}13三种解析XML小结三种解析XML共同点:都需要获取一种解析器的实例。比如DOM,SAX方式是通过工厂模式获取解析器,而PULL方式是通过android平台封装的工具类获取解析器的实例。将要解析的XML文档交给解析器处理。按照各自的方式特点进行解析。比如DOM解析DOM树,SAX按照自定义的事件处理方式进行解析,PULL按照自己的事件处理特点进行解析。14三种解析XML小结三种方式的不同主要是解析XML理念不同:DOM是DOM树的方式,SAX是事件流方式,而XPP(XMLPullParsing)是streaming(incremental)的方式。DOM和SAX在解释XML时,是不允许中断的;而XPP是可以在任何时候中断,并且允许重新开始。XPP在解释XML时会忽略某些部分,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论