


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国银行2025巴音郭楞蒙古自治州秋招笔试英语题专练及答案
- 邮储银行2025来宾市半结构化面试15问及话术
- 交通银行2025娄底市秋招结构化面试经典题及参考答案
- 建设银行2025鄂尔多斯市笔试英文行测高频题含答案
- 2025年3D打印的伦理争议
- 交通银行2025荆州市秋招笔试专业知识题专练及答案
- 2025行业市场规模增长动力分析
- 农业银行2025贺州市数据分析师笔试题及答案
- 农业银行2025清远市半结构化面试15问及话术
- 邮储银行2025兰州市半结构化面试15问及话术
- 肝性脑病(课件)
- 【名校】《三思而后行》 完整版课件
- 公司内部程序文件(格式模版)
- 泛光施工招标文件
- 旅游策划实务整套课件完整版电子教案课件汇总(最新)
- DB23∕T 2661-2020 地热能供暖系统技术规程
- 人工挖孔桩施工监测监控措施
- 国家职业技能标准 (2021年版) 6-18-01-07 多工序数控机床操作调整工
- 办公楼加层改造施工组织设计(100页)
- 渗透检测培训教材(1)
- 空调专业常用英文词汇
评论
0/150
提交评论