




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020年1月24日 1 第十章XML在JSP中的使用 2020年1月24日 2 教学内容 XML文档的组成SAXDOMJDOM 2020年1月24日 3 1 XML文档的组成 下面是一个格式正确的XML文档示例 TheAdventuresofHuckleberryFinnMarkTwainmassmarketpaperback298 5 49LeavesofGrassWaltWhitmanhardcover462 7 75 2020年1月24日 4 TheLegendofSleepyHollowWashingtonIrvingmassmarketpaperback98 2 95TheMarbleFaunNathanielHawthornetradepaperback473 10 95Moby DickHermanMelvillehardcover724 9 95 2020年1月24日 5 ThePortraitofaLadyHenryJamesmassmarketpaperback256 4 95TheScarletLetterNathanielHawthornetradepaperback253 4 25TheTurnoftheScrewHenryJamestradepaperback384 3 35 2020年1月24日 6 文档元素文档必须只有1个顶层元素 称为文档元素或根元素 类似于HTML页中的元素 其他所有元素都嵌套在其中创建格式正确的XML文档的一些基本规则 文档必须有一个顶层元素 文档元素或根元素 元素必须被正确地嵌套每一个元素必须同时拥有起始标签和结束标签起始标签中的元素类型名必须与相应结束标签中的名称完全匹配元素类型名是区分大小写的 2020年1月24日 7 元素内容是起始标签和结束标签之间的文本在元素内容中可以包括嵌套元素和字符数据两种类型 2020年1月24日 8 2 XML在JSP开发中的应用 如果使用数据库就必须安装一个分离的服务器进程 用户还必须学习SQL等如果使用XML文件存储数据 可以减少服务器的负荷 用一个文本编辑器即可完成编写 并且容易备份和共享 但如果更新多 XML文件会因为同时写入而受到破坏 而数据库支持事务处理 大多数站点涉及到的基本都是读而不是写 没有经常的更新可以考虑使用XMl文件 2020年1月24日 9 在JSp中处理XMl文档 首先就是接受XML文档并进行解析 解析后就可以使用XML文档的数据了 在JSP中操纵XML的API有很多种 如SAX DOM JDOM 2020年1月24日 10 3 通过SAX操作XML 准备解析器检查SAX的类与接口建立XML文档编写解析类内容事件处理器错误事件处理器SAX中较少用到但比较重要的知识 2020年1月24日 11 准备解析器 SAX SimpleAPIforXML 模型中 XML文档是作为一系列事件提供供给应用程序 下载解析器 有很多种实现Xerces 开源 成熟Xerces J bin 2 7 0解压后将三个文件Resolver jar xercesImpl jar xml apis jar放到WEB INF lib下 2020年1月24日 12 检查SAX的类与接口 SAX所需要的类通常都包含在下载的解析器中 SAX2 0 确保在将这些解析器加入CLASSPATH后可以找得到org xml sax XMLReader类 2020年1月24日 13 SAX阅读器 获取遵循org xml sax XMLReader接口的类的实例 创建SAX2解析器 XMLReaderxr XMLReaderFactory createXMLReader ParseXMLpx newParseXML xr setContentHandler px 2020年1月24日 14 解析文件 InputSourceinput newInputSource this getClass getResourceAsStream myenv xml xr parse input 2020年1月24日 15 内容处理类 为了使应用有效地处理XML数据 须向解析器注册处理类 处理类由一组回调方法组成 能在文解析过程中重要事件发生处调用 SAX2 0定义了处理接口org xml sax ContentHandlerContentHandler接口定义了解析生命周期中的几个重要的方法 2020年1月24日 16 ContentHandle接口中的回调 2020年1月24日 17 元素回调方法主要有三个事件 元素开始 结束和characters方法 1 元素开始事件 在开始解析一个元素的时候调用 PublicvoidstartElement StringnamespaceURI StringlocalName Stringqname Attributesatts 该方法提供了元素的三个名字 名域 本机的名字 全名 即前缀的本机名 Attributes是提供的属性集合 通过atts可以得到所有的属性名和相应的值 2020年1月24日 18 2 元素结束事件 在完成解析一个元素的时候调用PublicvoidendElement StringnamespaceURI StringlocalName Stringqname 当遇到结束标签时调用该方法 SAX提供了一个帮助类DefaultHandler 他实现了ContentHandler接口 在实现时只需继承该类即可 2020年1月24日 19 3 字符事件 处理字符Publicvoidcharacters char ch intstart intlength throwsSAXException 处理元素时会将元素中的文本数据通过characters 回调方法传递给一个封装程序 2020年1月24日 20 二 JDOM 具体类和类工厂JDOM是具体类的API Element Attribute ProcessingInstruction Comment都可以使用new关键实例化 不再需要类工厂 Elementroot newElement root Documentdoc newDocument root 当然也可以使Element的派生类来创建 Elementroot newMyElement root 2020年1月24日 21 输入与输出 JDOM不是解析器 是XML文档的JAVA表示形式 提供专门的org jdom input 最常见的是DOMBuilder SAXBuilder 可以从一组事件或一棵DOM树中创建核心的JDOM的Document对象 事实上 对于使用JDOM的程序员来讲 无论采用哪一个都无须对SAX或DOM的工作流程了解 2020年1月24日 22 输入 代码一 从SAX输入SAXBuilderbuilder newSAXBuilder Documentdoc builder build newFileInputStream contents xml 代码二 从DOM输入DOMBuilderbuilder newDOMBuilder Documentdoc builder build mydomdoc 从org w3c dom Document转为org jdom Document 2020年1月24日 23 输出 代码一 输出到DOMDOMOutputterout newDOMOutputter org w3c dom Documentdoc out output Jdomobject 代码二 触发SAX事件 方式也完全一样SAXOutputterout newSAXOutputter out setContentHandler contenthandler out setErrorHandler errorhandler out output myjdomobject 代码三 org jdom output XMLOutputter输出到一个XML或一个输出流 XMLOutputterout newXMLOutputter out output jdomobject newFileOutputStream 2020年1月24日 24 创建文档并输出 只需要使用Document Element Attribute类的构造函数就可以了 注意创建前者时须传根元素 如果需要添加一个元素的内容 包括子元素 注释等 调用addContent 方法添加属性可以使用元素的setAttribute 方法 2020年1月24日 25 将属性文件转为XML文件 读出属性文件到Properties对象中输出到XML文件中 2020年1月24日 26 JDOM与工厂类 自定义元素ORAElement 即从Element派生 提供默认的前缀声明 自定义工厂类 即从DefaultJDOMFactory派生 产生自定义的ORAElement使用生成器的setFactory 方法设置自定义工厂类 然
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外贸英语函电与实务练习题
- 《学生个人电脑硬件操作培训教案》
- 土地综合开发合作协议
- 从一本好书中学到的道理读后感类作文(15篇)
- 六一亲子诵读活动方案
- 六一儿童节比武活动方案
- 六一公司团委活动方案
- 医学营养考试试题及答案
- 六一套圈圈活动方案
- 医学考试试题库及答案
- 上海浦东新区公办学校储备教师教辅招聘笔试真题2024
- 2025年中国水性马克笔行业市场前景预测及投资价值评估分析报告
- 电动汽车充换电站建设资料标准
- JG/T 375-2012金属屋面丙烯酸高弹防水涂料
- 南邮综评面试题目及答案
- 23G409先张法预应力混凝土管桩
- DL∕T 1498.2-2016 变电设备在线监测装置技术规范 第2部分:变压器油中溶解气体在线监测装置
- 食品工程原理课程设计-升膜蒸发器的设计
- 天津大学化工传质与分离过程贾绍义柴诚敬化学工业出版ppt课件
- 集装箱正面吊作业安全措施及流程要点
- 射流器计算软件
评论
0/150
提交评论