


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
pull解析xml文件,和sax和dom一样 都可以脱离android单独使用,pull和sax的原理一样,不一样的地方是pull读取xml文件后调用方法返回的是数字, 读取到xml的声明返回数字0 START_DOCUMENT; 读取到xml的结束返回数字1 END_DOCUMENT ; 读取到xml的开始标签返回数字2 START_TAG 读取到xml的结束标签返回数字3 END_TAG 读取到xml的文本返回数字4 TEXT pull是开源的项目 源码下载地址/ 被解析的xml文档和android dom 解析xml方式 中的xml文档一样,命名为pullTest.xml.html view plaincopy1 private String pullParseXml(InputStream inputStream) 2 String result = ; 3 /解析全部的xml 4 boolean isParse = true; 5 try 6 / 创建一个xmlPullParser的工厂 7 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 8 / 获取一个解析实例 9 XmlPullParser parse = factory.newPullParser(); 10 / 设置输入流的编码格式 11 parse.setInput(inputStream, UTF-8); 12 / 当前事件的类型 13 int eventType = parse.getEventType(); 14 while (XmlPullParser.END_DOCUMENT != eventType) 15 / 当前节点的名称 16 String nodeName = parse.getName(); 17 switch (eventType) 18 case XmlPullParser.START_TAG: 19 if (group.equals(nodeName) 20 / 解析节点中的属性值,getAttributeCount()获取属性的个数 21 for (int i = 0; i parse.getAttributeCount(); i+) 22 / 属性名称 23 String groupName = parse.getAttributeName(i); 24 / 属性名称对应的值 25 String nameValue = parse.getAttributeValue(i); 26 result = result + groupName + = + nameValue; 27 28 result += n; 29 else if (person.equals(nodeName) 30 String personName = parse.getAttributeValue(0); 31 String age = parse.getAttributeValue(1); 32 result = result + personName = + personName 33 + age = + age + n; 34 else if (chinese.equals(nodeName) 35 /节点对应的文本 36 String chinese = parse.nextText(); 37 Pattern p = Ppile(s*|t|r|n); 38 Matcher m = p.matcher(chinese); 39 chinese = m.replaceAll(); 40 41 result = result + chinese = + chinese; 42 else if (english.equals(nodeName) 43 String english = parse.nextText(); 44 45 Pattern p = Ppile(s*|t|r|n); 46 Matcher m = p.matcher(english); 47 english = m.replaceAll(); 48 49 result = result + english = + english + n; 50 51 break; 52 case XmlPullParser.END_TAG: 53 /在解析到一个group节点完成时,退出解析xml文件 54 / if(group.equals(nodeName) 55 / eventType = XmlPullParser.END_DOCUMENT; 56 / isParse = false; 57 / 58 break; 59 default: 60 break; 61 62 /整个xml文件全部解析 63 if(isParse) 64 eventType = parse.next(); 65 66 67 catch (XmlPullParserException e) 68 / TODO Auto-generated catch block 69 e.printStackTrace(); 70 catch (IOException e) 71 / TODO Auto-generated catch block 72 e.printStackTrace(); 73 74 75 return result; 76 pull和sax不同最主要的体现在pull可以由客户随时终止解析xml.sax解析,只能从文档头一直读到尾,中间不能停止也不能对文件进行修改。直到解析完了整个文档才会返回。html view plaincopy77 /在解析到一个group节点完成时,退出解析xml文件 78 / if(group.equals(nodeName) 79 / eventType = XmlPullParser.END_DOCUMENT; 80 /
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租赁合同范本怎么签约
- 学生书本租售合同范本
- 教培工资合同范本
- 假山工程担保合同范本
- 个人电子借款合同范本
- 低层公寓出租合同范本
- 文员制定合同范本模板
- 过敏性紫癜关节型护理查房
- 回收桌椅合同范本
- 简易扇灰合同范本
- 巷道围岩注浆加固施工安全技术措施
- 实验中学初一新生分班考试数学试卷附答案
- 区治安巡防队员面试题
- 施工组织设计施工总体部署完整版
- TUPSW微机控制电力专用不间断电源(UPS)系统使用说明书
- 骨质疏松诊治与中医药
- LY/T 2383-2014结构用木材强度等级
- GB/T 528-2009硫化橡胶或热塑性橡胶拉伸应力应变性能的测定
- 中日关系历史
- GB/T 15171-1994软包装件密封性能试验方法
- 2023年江苏省中学生生物学竞赛(奥赛)初赛试题和答案
评论
0/150
提交评论