全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届黑龙江省安达市田家炳高级中学高二上化学期末质量跟踪监视模拟试题含解析
- 安徽艺术职业学院《室内陈设艺术设计一》2024-2025学年第一学期期末试卷
- 河北邢台市南和一中2026届物理高二上期末统考模拟试题含解析
- 广西现代职业技术学院《农药管理学》2024-2025学年第一学期期末试卷
- 2025-2026学年内蒙古巴彦淖尔市乌拉特前旗一中物理高二上期末复习检测试题含解析
- 天津滨海汽车工程职业学院《生物制品学》2024-2025学年第一学期期末试卷
- 福建省晋江市永春县第一中学2026届物理高二第一学期期末学业水平测试试题含解析
- 天津部分区2025年生物高一第一学期期末学业质量监测试题含解析
- 安康职业技术学院《概车论与数理统计》2024-2025学年第一学期期末试卷
- 2025-2026学年内蒙古呼和浩特市数学高二第一学期期末联考试题含解析
- 某洁净室项目招标文件
- 重症病人营养指南解读
- 标书投标年某某医院食堂承包投标书
- GB/T 4134-2003金锭
- GB/T 26862-2011电力系统同步相量测量装置检测规范
- 6-第六讲(关联规则分析)课件
- DB32∕T 4117-2021 保温装饰板外墙外保温系统技术规程
- 2022年医学专题-南非农药登记090919
- 业主大会业主委员会备案表
- 惠普云教室用户操作手册
- 个人及企业征信查询授权书模板
评论
0/150
提交评论