


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SAX解析xml的原理以及说明1. 所需jar包sax2r2-0.1.jar2. 主要原理以及详细内容(1) 主要原理除了准备、工厂和类加载、文件初始之外,主要的解析机制以下图案例说明如下:以某标签(例如)开始解析(方法startElement(),继而获取两个相邻标签(例如和)之间的内容(方法characters()),如果接下来的标签不是成对的另一个结束标签(例如),则继续执行开始解析标签的操作,直到解析到存在成对的另一个结束标签时,则执行结束操作(方法endElement(),接下来将循环执行这些步骤,直到xml文件解析完毕。(2)实际解析详细内容展示(1)public void parserXml(String fileName) SAXParserFactory saxfac = SAXParserFactory.newInstance();/获取工厂类 try String path=C:/dataMigration/+fileName; SAXParser saxparser = saxfac.newSAXParser();/初始化实例类 saxparser.parse(new File(path), new MySAXHandler();/调用解析方法(其中new MySAXHandler()为主要的处理逻辑) catch (ParserConfigurationException e) e.printStackTrace(); catch (SAXException e) e.printStackTrace(); catch (FileNotFoundException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); 主要业务逻辑处理类class MySAXHandler extends DefaultHandler String tagName Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException this.tagName = qName /qName为标签的名字(如上图的中的person)/Attributes主要用于描述标签中的属性以及取值(如)String id = attributes.getQName(0);/获取标签的第一个属性的名字(如果是图中的person标签,则id = “id”)String idValue = attributes.getValue(0);/获取标签中第一个属性的定义的值(如果是图中的person标签,则id = “1”)int length = attributes.getLength();/这里获取到的是标签的所有属性的数量if(this.tagName.equalsIgnoreCase(person))/定义到开始的标签是person的时候做一些处理 Override public void characters(char ch, int start, int length) throws SAXException String data = new String(ch, start, length);/以上方式会读取换行等作为”n”,所以不建议使用这种方式获取内容,建议创建StringBuffer实例,调用newStringBuffer().append(ch, start, length);并调用delete(0,currentValue.length()清理; /这里的data值是两个相邻标签之间的内容,也可以定义为其他可行的数据类型 (如StringBuffer 等),需要注意的是sax是流式解析,也就意味的所有的相邻标签之间的内容都会在这里获取,所以要做好判断处理if(tagName .equalsIgnoreCase(name)/定义标签名字是name的时候,可以对获取到的数据进行处理 Override public void endElement(String uri, String localName, Stri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国大唐印尼公司职业发展面试预测题集
- 拇外翻的护理课件
- 2025年超多道数字地震仪合作协议书
- 2025年新能源环卫装备项目建议书
- 2025年电梯、自动扶梯及升降机项目建议书
- 2025年植物原药项目发展计划
- 2025年消雾塔项目发展计划
- 抚顺公务员专业知识培训课件
- 抗震防灾减灾课件
- 抗生素知识培训课件
- (9月10日)师者如光虽微致远-2025年教师节主题班会课件-2025-2026学年高中主题班会课件
- 出口食品销售合同范本
- 加盟退款解除合同协议书
- 2025秋外研新版三起点小学英语四年级上册教学计划
- 2025河北雄安新区招聘应急管理综合行政执法技术检查员10人考试备考题库及答案解析
- 2025北师大版(2024)三年级上册数学教学计划
- 2025-2026学年人教版(2024)初中数学八年级上册教学计划及进度表
- 2025秋部编版二年级上册语文教学计划+教学进度表
- 智慧城市管理技术专业教学标准(高等职业教育专科)2025修订
- 南京市2025届高三年级学情调研(零模)物理试卷(含答案详解)
- (正式版)JBT 14449-2024 起重机械焊接工艺评定
评论
0/150
提交评论