版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、XML 和 File I/O第十四章回顾与作业点评根据你的理解,解释DAO模式?分层开发的优势和原则?根据你的理解,说说数据访问层的职责?预习检查XML概念及作用?如何使用CSS修饰XML文档?如何使用DOM解析XML文档?Java中如何实现文件的输入输出?本章任务使用CSS修饰XML文档使用DOM解析XML文档按照规范格式保存宠物数据到文件本章目标理解XML概念及作用使用CSS修饰XML文档使用DOM解析XML文档使用Reader读取文件内容使用Writer输出内容到文件XML( eXtensible Markup Language,可扩展标记语言)是一种简单的数据存储语言,使用一系列简单的
2、标签描述数据使人们或程序能够理解这些标签XML简介2-1SGMLHTML基于文本的格式,允许开发人员描述结构化数据并在各种应用之间发送和交换这些数据有助于在服务器之间传输结构化数据允许通过使用自定义格式,标识、交换和处理数据库可以理解的数据是元语言XMLXMLXML标记语言的层次结构XML简介2-2 中华园 3336767 王府井大街25号 北京 中国 20056 . . . XML 声明- 定义 XML 版本包含数据的 XML 标签XML和XHTML的区别 XHTML网页示例 这是一个XHTML网页! XHTML标签都是标准标签,不允许自定义标签。 XHTML标记 YAYA 100 0 酷酷
3、的雪娜瑞 OUOU 90 15 聪明的拉布拉多犬 XML标记XHTMLXML标签标签都有固定含义不能去创造新的标签支持自定义标签,具有扩展性作用主要用来显示数据可以通过标签和属性对页面显示进行排版用来存储和交换数据无法描述页面的排版和显示形式创建XML文档XML文档总是以XML声明开始定义了XML的版本和所使用的编码等信息XML文档的主要部分是元素元素由开始标签、元素内容和结束标签组成元素内容可以包含子元素、字符数据等XML文档中的注释符号是至少需要一个元素XML 标签区分大小写应正确使用结束标签正确嵌套标签应使用合法标签标记名称的长度应定义有效的属性应验证文档管理元素的规则格式良好和有效的
4、XML 文档被视为格式良好的 XML 文档的条件:该文档满足最低要求集如果文档不满足任何一个良好格式的要求,则将发生致命错误有效的 XML 文档是符合 Document Type Definition(文档类型定义,DTD)的规则的格式良好的 XML 文档解析器-由解析器解析的 XML 文档在浏览器中查看已解析的文档 带有 XML 文档的编辑器解析器类型非验证解析器验证解析器检查文档格式是否良好使用 DTD 检查文档的有效性使用DTD生成XML文档什么是DTDDTD(Document Type Definition文档类型定义)保证XML文档格式正确性DTD的结构DTD 以简单文本文件的形式出
5、现可以存储在独立的文件中,也可以嵌入 XML 文档引用 DTD 的 XML 文档将包含 声明为什么使用 DTD?验证接收到的数据是否有效 用于验证自己的数据定义 XML 文档的合法构建块使用一系列合法元素来定义文档结构演示示例:内部和外部DTD定义DTD 的结构DTD的结构为:!DOCTYPE pets 声明根元素pets直接下级元素是dogs、penguins,顺序固定,只能出现一次dogs直接下级元素是dog,*表示dog元素可以出现0到多次penguins直接下级元素是penguin,+表示penguin至少出现一次dog的直接下级元素依次是name,health,love,strain
6、,?表示strain元素出现0次到1次dog元素有id属性,是CDATA类型,必须出现元素为 #PCDATA 类型XML的优势:XML的优势XML独立于计算机平台可扩展性交互性独立于编程语言独立于操作系统简单性灵活性XML的作用数据存储:数据库提供了更强有力的数据存储和分析能力XML仅仅是存储数据XML与其他数据表现形式最大的不同是它极其简单,正是这点使XML与众不同数据交换:由于各个计算机所使用的操作系统、数据库不同,因此数据之间的交换向来是件头痛的事可以使用XML来交换数据数据配置:使用XML配制文件可读性强,灵活性高使用CSS格式化XML显示效果编写CSS样式文件引入CSS文件pets
7、display: block; color: red;dog,penguin display: block; margin-left: 40pt;使用CSS格式化XML不能代表XML文档格式化的未来。XSL是首选的XML样式表语言,远比CSS更加完善演示示例:使用CSS格式化XML解析XML目前最常用的XML解析技术:DOMSAXSun公司提供了JAXP (Java API for XML)接口来使用DOM和SAXorg.w3c.dom:W3C推荐的用于使用DOM解析XML文档的接口org.xml.sax:用于使用SAX解析XML文档的接口javax.xml.parsers:解析器工厂工具,程
8、序员获得并配置特殊的特殊语法分析器使用DOM解析XMLDOM是Document Object Model的缩写,即文档对象模型DOM把XML文映射成一个倒挂的树使用DOM解析XML文档的步骤:创建解析器工厂对象由解析器工厂对象创建解析器对象由解析器对象对指定XML文件进行解析,构建相应DOM树,创建Document对象以Document对象为起点对DOM树的节点进行增删改查操作。演示示例:使用DOM解析XMLDocument对象Document对象代表了整个XML文档所有其它的Node都以一定的顺序包含在Document对象之内它也是对XML文档进行操作的起点Document对象的主要方法有:
9、getElementsByTagName(String):返回一个NodeList对象,它包含了所有给定标签名字的标签getDocumentElement():返回一个代表这个DOM树的根节点的Element对象,也就是代表XML文档根元素的那个对象NodeList对象指一个包含了一个或者多个节点(Node)的列表可以简单的把它看成一个Node数组可以通过方法来获得列表中元素NodeList对象常用的方法有:getLength():返回列表的长度item(int):返回指定位置的Node对象Node对象是DOM结构中最基本的对象,代表了文档树中的一个抽象节点实际使用的时候,很少会真正用到Nod
10、e这个对象而是用到诸如Element、Attr、Text等Node对象的子对象Node对象的主要方法有:方法名说 明getChildNodes()包含此节点的所有子节点的NodeListgetFirstChild()如果节点存在子节点,则返回第一个子节点getLastChild()如果节点存在子节点,返回最后一个子节点getNextSibling()返回在DOM树中这个节点的下一个兄弟节点getPreviousSibling()返回在DOM树中这个节点的上一个兄弟节点getNodeName()根据节点的类型返回节点的名称getNodeValue()返回节点的值getNodeType()返回节点
11、的类型Element对象Element对象代表XML文档中的标签元素继承自Node对象,是Node最主要的子对象Element对象的方法:getAttribute(String):返回标签中给定属性名称的属性的值getElementsByTagName(String):返回具有给定标记名称的所有后代 Elements 的 NodeList使用SAX解析XMLSAX(Simple API for XML)是另一种常用的XML解析技术SAX解析器不像DOM那样建立一个完整的文档树,而是在读取文档时激活一系列事件这些事件被推给事件处理器,然后由事件处理器提供对文档内容的访问与DOM相比,SAX的优点
12、如下:内存消耗小无需为所有节点创建对象小结什么是XML?有什么作用?解析XML文档的方式有几种?DOM解析XML文件的步骤?指导根据DTD定义编写XML文档训练要点:XML定义使用DTD定义XML文档结构根据DTD正确编写XML文档需求说明:依据DTD文件定义编写XML文档,用于设置宠物的健康值和亲密度,以及运动后两项的变化值实现思路:创建Java项目TestXML根据需求提供的内容创建并编写外部DTD文件pet.dtd根据pet.dtd文件创建并编写XML文件pet.config 100 0 18 10 100 0 15 8 完成用时:15分钟指导使用DOM解析XML文档训练要点:使用DOM
13、解析XML文档的基本步骤JDK中DOM的主要接口及方法的使用需求说明:使用DOM解析保存宠物信息的XML文件,并输出显示宠物的相关信息实现思路:在Java项目TestXML下创建类TestDOM,包含main方法在main方法中编写代码,使用DOM解析XML文档pet.configSystem.out.println(XML文件中狗狗的初始化信息:);for (int i = 0; i petList.getLength(); i+) Node pet = petList.item(i); for (Node node = pet.getFirstChild(); node != null;
14、node = node.getNextSibling() if (node.getNodeType() = Node.ELEMENT_NODE) String name = node.getNodeName(); String value = node.getFirstChild().getNodeValue(); System.out.println(name + : + value + t); 完成用时:20分钟共性问题集中讲解常见调试问题及解决办法代码规范问题共性问题集中讲解读写文件2-1格式模版保存在文本文件pet.template中,内容如下:您好!我的名字是name,我是一只typ
15、e。我的主人是master。其中name、type、master是需要替换的内容,现在要求按照模板格式保存宠物数据到文本文件,即把name、type、master替换为具体的宠物信息,该如何实现呢?读写文件2-2可以把该问题分解为:如何从文件中读取模版?(使用Reader接口实现)如何替换模版中的内容为当前宠物信息?(使用String的replace()方法实现)如何将文本保存到文件?(使用Writer接口实现)以上三个子问题中,涉及到了文件的输入输出操作使用Reader读取文件内容2-1Java中,文件的输入输出功能通过流来实现流(stream)可以理解为一组有顺序的、有起点和终点的动态数据
16、集合流按照处理数据的单位可分为两种字节流字符流文件输入输出的原理:使用Reader读取文件内容2-2所有字符输入流类都是抽象类Reader的子类Reader的主要方法有:int read() 从源中读取一个字符的数据,返回字符值int read(char b) 从源中试图读取b.length个字符到b中,返回实际读取的字符数目void close() 关闭输入流Reader读取文件的步骤:创建字符输入流对象,负责读取文件创建中转站数组,存放读取的内容读取文件内容到数组输出保存在数组中的文件内容关闭输入流指导读取模板文件内容并输出训练要点:理解输入流和输入流类的概念使用Reader实现文件读取需
17、求说明:在本地磁盘下创建宠物信息模板,使用Reader实现模板内容的读取和显示难点指导:/ 1、创建字符输入流对象,负责读取c:/ pet.template文件Reader fr = new FileReader(c:/ pet.template);/ 2、创建中转站数组,存放每次读取的内容char ch = new char1024;/ 3、通过循环实现文件读取,把全部内容放入StringBufferStringBuffer sb = new StringBuffer();int length = fr.read(ch);while (length != -1) sb.append(ch);
18、length = fr.read(ch);完成用时:20分钟指导替换模板文件中占位符训练要点:String类replace方法需求说明:读取宠物模板,并使用实际信息替换模板中的占位符难点指导:String str = 您好!我的名字是name,我是一只type。我的主人是master。;System.out.println(替换前:+ str);str = str.replace(name, 欧欧);str = str.replace(type, 狗狗);str = str.replace(master, 李伟);System.out.println(替换后:+ str);完成用时:10分钟共性问题集中讲解常见调试问题及解决办法代码规范问
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外研八下英语Unit 2 Developing ideas《合作探究二》课件
- 人教 八年级 语文 下册 第2单元《8.时间的脚印 第1课时》课件
- 2025 高中信息技术数据结构在电商用户评价信息挖掘课件
- 海洋渔业资源增殖项目可行性研究报告
- 小学综合课程和综合实践活动
- 2025 高中信息技术数据与计算之算法的最小生成树算法课件
- 春季大风天气消防安全指南与防范措施
- 2025 高中信息技术数据与计算之数据与计算提升在线教育资源共享课件
- 2026年干法电极设备国产化与智能制造升级实践
- 2026年零点定位系统在五轴加工快速换产应用
- 隧道爆破安全培训课件
- 喝酒划拳活动方案
- T/CHES 59-2021组合式金属防洪挡板安装、验收及维护规范
- 建筑行业安全生产部岗位职责
- 宁夏砖瓦用粘土矿产地质勘查技术规程 DB64-T 1754-2020
- 校长在人工智能教师培训专题研讨会上讲话:主动拥抱人工智能才能为学生开辟更广阔的成长空间
- 电工实训项目二常用电工工具、仪表使用模块二 认识和使用常用电工仪表
- 《经络与腧穴》课件-腧穴
- 《空调制冷原理》课件
- 2025年上海市浦东新区高三语文一模作文题目解析及范文:一个人履行责任是否意味着放弃自由
- 瓷砖美缝施工合同协议书
评论
0/150
提交评论