




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年 安康市审计局事业单位招聘考试笔试试题附答案
- 2023-2028年中国河南白酒行业市场深度分析及投资策略咨询报告
- 2025年中国智慧商城建设市场前景预测及投资规划研究报告
- 2025年中国屏山炒青茶行业市场发展监测及投资战略规划报告
- 宝鸡醋项目可行性研究报告
- 中国电池制造行业全景评估及投资规划建议报告
- 销售顾问培训课件
- 中国量子磁力计行业市场前景预测及投资价值评估分析报告
- 2021-2026年中国小黄鱼市场竞争格局及投资战略规划报告
- 艺术培训学校策划书
- 多图中华民族共同体概论课件第十三讲先锋队与中华民族独立解放(1919-1949)根据高等教育出版社教材制作
- JJF 1101-2019 环境试验设备温度、湿度参数校准规范
- 2024年陕西省政工师理论知识考试参考题库(含答案)
- 化工工程基础知识培训课件
- 市政道路工程技术标
- 无人机研学旅行方案
- 校园观察校园不文明现象之我见我行
- 厨房 食品安全培训课件
- 留学宣讲活动策划方案
- 林下种植中药材的可行性方案
- 钢筋加工培训课件
评论
0/150
提交评论