资源预览内容
第1页 / 共50页
第2页 / 共50页
第3页 / 共50页
第4页 / 共50页
第5页 / 共50页
第6页 / 共50页
第7页 / 共50页
第8页 / 共50页
第9页 / 共50页
第10页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第9 9章章 XMLXML数据操作接数据操作接口口XML数据操作接口内容提要n可可 扩扩 展展 标标 记记 语语 言言 ( eXtensible Markup Language,XML)是是目目前前应应用用开开发发领领域域中中的的热门技术。热门技术。n本本章章主主要要讲讲述述XML基基本本概概念念,XML的的三三种种显显示示样样式式:CSS(Cascading Style Sheet,层层叠叠式式样样式式表表单单)、XSL(Extensible Style Language, 扩扩 展展 的的 标标 记记 语语 言言 )和和 Data Island(数据岛)(数据岛)n如何利用如何利用JSP操作操作XML文件。文件。XML数据操作接口XML的概念 nXML即可扩展的标记语言,可以定义语义标记,是元标记语言。XML不像超文本标记语言HTML,HTML只能使用规定的标记,对于XML,用户可以定义自己需要的标记。nXML(eXtensible Markup Language)和HTML(Hyper Text Markup Language)师出同门,都是从SGML(Standard Generalized Markup Language)延伸而出的标记语言XML数据操作接口XML文档的结构 n案例名称:元标记语言案例名称:元标记语言n程序名称:程序名称:9-01.xmlnnnzhourunfanmalenTeacher Peking Univ.nXML数据操作接口定义基本元素 案例名称:定义基本元素案例名称:定义基本元素程序名称:程序名称:9-02.xml周润发北京大学计算机系老师2000XML数据操作接口使用属性 案例名称:添加属性案例名称:添加属性程序名称:程序名称:9-03.xml周润发北京大学计算机系教师2000XML数据操作接口典型的典型的XML文档结构文档结构案例名称:典型的案例名称:典型的XML文档结构文档结构程序名称:程序名称:9-04.xml周润发教师 None 唱歌、跳舞XML数据操作接口XML声明 nXML声明是以“?xml”开始的,程序9-04.xml的声明为:nnXML声明的作用是告诉浏览器将要处理的文档是XML文件。一个XML文档最好是以一个XML声明作为开始。n之所以说“最好”是因为XML声明在XML文档中是可选内容,可加可不加,但XML标准强烈推荐加入这一行声明。XML声明中可以包含version,encoding和standalone三个属性。XML数据操作接口字符和实体引用 n字符和实体引用可以向XML文档中引入其他信息,而不需要直接在文档中输入它们。字符和实体引用通常用于以下情况。n(1)字符不能直接出现在文档中,因为它们会被解释为标记。n(2)由于输入设备的限制,字符不能直接输入到文档中。n(3)由于单字节字符的限制,字符不能可靠地经过处理程序。n(4)相同的字符串或文档片断在文档中多次使用。XML数据操作接口 XML常用的实体引用 实 体实 体 引 用意 义lt<(大于)amp&&(和)apos'(单引号)quot"“(双引号)XML数据操作接口使用特殊字符使用特殊字符案例名称:使用特殊字符案例名称:使用特殊字符程序名称:程序名称:9-05.xml<周润发>北京大学教师2000XML数据操作接口XML的三种显示格式 n显示XML文件常见的有三种方式:n使用CSS样式表n使用XSL样式单n使用XML的数据岛技术XML数据操作接口CSS样式表 案例名称:案例名称:CSS样式表样式表程序名称:程序名称:9-06.cssGREETING font-size: 48pt;font-weight: bold;案例名称:调用案例名称:调用CSS的的XML文件文件程序名称:程序名称:9-07.xmlChinaXML数据操作接口XSL样式语言 案例名称:调用案例名称:调用XSL的的XML文件文件程序名称:程序名称:9-08.xml案例名称:案例名称:XSL文件文件程序名称:程序名称:9-09.xslXML数据操作接口 XML数据岛技术 案例名称:使用案例名称:使用XML文件数据岛文件数据岛程序名称:程序名称:9-10.htmXML数据操作接口XML的两种语法规则 n在XML文档规则方面,目前有两种:nW3C的DTD技术n微软公司Scema技术XML数据操作接口 DTD文档类型定义 n为文档类型定义(Document Type Definition),简称DTD。DTD可以包含在XML文档中,也可以独立为一个文件。根据DTD定义的位置,可以分成内部DTD和外部DTD n内部DTD 案例名称:内部案例名称:内部DTD程序名称:程序名称:9-13.xmlXML数据操作接口外部DTD 案例名称:外部案例名称:外部DTD程序名称:程序名称:9-15.DTD案例名称:外部案例名称:外部DTD程序名称:程序名称:9-16.xmlXML数据操作接口Schema文档规则 案例名称:使用案例名称:使用Schema程序名称:程序名称:9-18.xml hello案例名称:使用案例名称:使用Schema程序名称:程序名称:9-17.xmlXML数据操作接口字符集概述 n常见的字符集包括:nASCII字符集、ISO8859字符集、Unicode字符集合、UCS字符集和常用的中文字符集:GB2312、GBK和Big5 XML数据操作接口 ASCII字符集 nASCII码的全称是American Standard Code for Information Interchange(美国标准信息交换码),它是一种单字节的7位二进制编码。在ASCII码字符集中,每个数字,字母或特殊字符都对应于一个7位二进制数,这个7位二进制数是以一个字节(8位)来表示的(其中最高位为0)。从而定义了书写英语所需要的全部字符以及部分控制字符。n由于ASCII码的最高位为0,因此,在ASCII码字符集中一共定义了128(27)个字符编码,所定义的这些字符的编码都在0-127之间。XML数据操作接口ISO 8859字符集 nASCII码在定义之初只是为了表示英语(更严格来说是美式英语),对于象、等其他语言或地区所需要的字符则没有定义其表示方式。n随着计算机应用的扩展,人们对其他字符表示的需求越来越迫切。1987年,国际标准组织ISO(International Organization for Standardization)发布了字符集标准:ISO8859-1字符集。ISO8859-1通常也被叫做Latin-1字符集。Latin-1字符集在ASCII码的基础上增加了对西欧语言的支持。nISO8859字符集是单字节的8位二进制编码字符集,一共定义了256(28)个字符编码,其中,0-127之间的字符与ASCII码的定义相同,128-255之间的字符则是为了提供对其他语言的支持而对ASCII码进行的扩充。n除了ISO 8859-1,ISO 8859标准中还定义了10个用于不同文字的字符集(8859-2到8859-10以及8859-15),另外还有4个字符集(8859-11到8859-14)正在开发过程中XML数据操作接口Unicode字符集 nUnicode是由美国各大电脑厂商所组成的Unicode协会创建的。其目的在于推广一个统一的编码方案,将世界上所有的常用文字都包含进去。它涵盖了美国、欧洲、中东、非洲、印度、亚洲和太平洋等地区的绝大多数语言。Unicode在创建之初希望能够方便地交换、处理和显示多种文字,就象数学符号一样地通用。它希望能够解决使用多种字符标准的计算机国际化问题n为了将成千上万的文字统一到同一个编码机制之下,在兼顾经济的原则下,不管是东方文字还是西方文字,在Unicode中一律用两个字节来表示。也就是说,Unicode是一种双字节编码机制的字符集,使用0-65535之间的双字节无符号整数对每个字符进行编码。这样,在Unicode字符集中,至少可以定义65536个不同的字符,足以应付目前绝大多数场合的需要。XML数据操作接口中文字符集 n中文简体和繁体,常用的字符集有三种:nGB2312、GBK和Big5 XML数据操作接口GB2312字符集nGB码的全称是GB2312-80信息交换用汉字编码字符集基本集,1980年发布,是中文信息处理的国家标准,在中国大陆及海外使用简体中文的地区(如新加坡等)是强制使用的唯一中文编码。P-Windows3.2和苹果OS就是以GB2312为基本汉字编码的,Windows 95/98则以GBK为基本汉字编码,但兼容支持GB2312。nGB码共收录了6763个简体汉字、682个符号。其中,汉字部分:一级字3755个,以拼音排序;二级字3008个,以偏旁排序。该标准的制定和应用为规范、推动中文信息化进程起了很大作用。XML数据操作接口GBK字符集nGBK编码是中国大陆制订的、等同于UCS的新的中文编码扩展国家标准。GBK工作小组于1995年12月完成的GBK规范。该编码标准兼容GB2312,共收录了汉字21003个、符号883个,并提供了1894个造字码位,简、繁体字融于一库。XML数据操作接口BIG5字符集nBIG5编码是由台湾制定的、目前在台湾、香港地区普遍使用的一种繁体汉字的编码标准,包括符号440个,一级汉字5401个、二级汉字7652个,共计13060个汉字。XML数据操作接口UTF-8字符集 nUTF是Unicode/UCS Transformation Format的缩写。由于Unicode/UCS 使用多字节表示一个字符,因此使用Unicode/UCS的英文文本文件比使用ASCII码或Latin-1码的文件要大得多,因此出现了压缩版本的Unicode/UCS:UTF-8。XML数据操作接口UTF-16字符集 nUTF-16也是ISO/IEC 10646-1和Unicode的变形表示方式的一种。它的目的是维持双八位的编码方式,同时也用一些特殊的双八位来表示非基本多文种平面(BMP)中的一些字符。这种用来表示非BMP字符的方法在Unicode中称作代理对机制。nISO 10646 使用四个字节来编码,因此要应付未来的扩充需求可以说是绰绰有余。相对地,Unicode 只用两个字节,不但空间很容易用尽,而且如果要在未来继续和ISO 10646 保持兼容,需要用一种机制来弥补两个字节的不足。代理对(surrogate pairs)的设计便在这个背景下应运而生。XML数据操作接口在XML中使用HTML 案例名称:使用案例名称:使用HTML标记标记程序名称:程序名称:9-19.xml Tom male XML数据操作接口在XML中使用JavaScript代码 案例名称:使用案例名称:使用JavaScript标记标记程序名称:程序名称:9-20.xmlXML数据操作接口 XML的三种应用程序接口 n在Java中对XML的解析接口有3大类:n基于DOM(Document Object Model)的解析接口n基于SAX(Simple API for XML)的解析接口n基于JDOM(Java Document Object Model)技术的解析接口XML数据操作接口解析接口nDOM即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成了一个对象模型的集合(这个集合通常被称为DOM树),应用程序可以通过对该对象模型的操作,实现对XML文档中数据的操作。nSAX即XML简单应用程序接口。SAX提供了一种对XML文档进行顺序访问的模式,这是一种快速读写XML数据的方式。当使用SAX分析器对XML文档进行分析时,会触发一系列事件,并激活相应的事件处理函数,从而完成对XML文档的访问,所以SAX接口也被称作事件驱动接口。nJDOM的处理方式是与DOM类似的操作。是SUN公司发布的一种简单方便的XML处理接口。XML数据操作接口解析器 n解析器实际上就是一段代码,它读入一个XML文档并分析其结构。我们在这里介绍的是基于Java的解析器。n目前主流的解析器有:JAXP(Java API for XML Processing)、Xerces(Apache)、XML4J(IBM)和xalan等,主流的解析器都支持SAX和DOM。支持JDOM的解析器目前只有SUN公司发布的jdom包。 XML数据操作接口DOM解析接口 案例名称:案例名称:DOM树结构树结构程序名称:程序名称:9-21.xml 张三 李四 XML数据操作接口DOM读取XML文件 n第一步:建立一个解析器工厂。nDocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();n第二步:以利用这个工厂来获得一个具体的解析器对象。nDocumentBuilder builder=dbf.newDocumentBuilder();n第三步:利用DocumentBuilder的parse()方法接受一个XML文档名作为输入参数,返回一个Document对象。Document对象代表了一个XML文档的树模型。nDocument doc=builder.parse(candidate.xml);n第四步:使用Document对象的getElementsByTagName()方法,我们可以得到一个NodeList对象,它是XML文档中的标签元素列表,可以使用NodeList对象的item()方法来得到列表中的每一个Node对象。nNodeList nl =doc.getElementsByTagName(PERSON);nElement node=(Element) nl.item(i);n第五步:通过Node对象的getNodeValue()方法提取某个标签内的内容。nnode.getElementsByTagName(NAME).item(0).getFirstChild().getNodeValue()XML数据操作接口JSP使用使用DOM读取读取XML文件文件案例名称:案例名称:JSP使用使用DOM读取读取XML文件文件程序名称:程序名称:9-22.jspXML数据操作接口JSP使用使用DOM创建创建XML节点节点案例名称:案例名称:JSP使用使用DOM创建创建XML节点节点程序名称:程序名称:9-23.jspXML数据操作接口SAX解析接口 nSAX是一种轻量型的方法。在处理DOM的时候,需要读入整个的XML文档,然后在内存中创建DOM树,生成DOM树上的每个Node对象。n当文档比较小的时候,这不会造成什么问题,但是一旦文档变大,处理DOM就会变得相当费时费力。特别是其对于内存的需求,将是成倍的增长,以至于在某些应用中使用DOM是一件很不经济的事,一个较好的替代解决方法就是SAX。XML数据操作接口 SAX读取XML文件 nSAX解析器工作的过程至少包含3步。n第一步:和DOM一样,需要建立一个解析器工厂。nSAXParserFactory spf = SAXParserFactory.newInstance();n第二步,创建一个解析器对象。nSAXParser saxParser = spf.newSAXParser();n第三步,将解析器和XML文档联系起来,开始解析。nsaxParser.parse(new ),new sax();XML数据操作接口案例名称:使用案例名称:使用SAX对对XML文件进行解析文件进行解析程序名称:程序名称:9-23.javaXML数据操作接口 JDOM解析接口 nJDOM设计者的目标是:“Java + XML = JDOM”。2002年的JavaOne会议上JDOM的主要创始人Jason Hunter有一篇精彩的演讲介绍了JDOM技术,题目就是“JDOM Makes XML Easy”n在那篇文档里,JDOM被拿来与DOM比较,JDOM是为了在Java中提供比DOM和SAX更为方便的XML处理接口而开发的。在可以下载JDOM的最新版本。JDOM的jar文件是jdom.jar。XML数据操作接口JDOM对象 nJDOM的处理方式有些类似于DOM,但它主要是用SAX实现的,不必担心处理速度和内存的问题。n另外,JDOM中几乎没有接口,全部是类,主要的类有:nAttribute(属性)、CDATA(内容)、Comment(注释)、Document(文档)、Element(元素)Namespace(命名空间)、ProcessingInstruction(处理指令)和Text(文本)XML数据操作接口使用使用JDOM读取读取XML文件文件案例名称:使用案例名称:使用JDOM读取读取XML文件文件程序名称:程序名称:9-24.jspXML数据操作接口使用使用JDOM读取读取XML字符串字符串案例名称:使用案例名称:使用JDOM读取读取XML字符串字符串程序名称:程序名称:9-25.jspXML数据操作接口使用使用JDOM读取读取XML的属性的属性案例名称:使用案例名称:使用JDOM读取读取XML的属性的属性程序名称:程序名称:9-26.jspXML数据操作接口XML数据操作接口小结n可可 扩扩 展展 标标 记记 语语 言言 ( eXtensible Markup Language,XML)是是目目前前应应用用开开发发领领域域中中的的热门技术。热门技术。n本本章章主主要要讲讲述述XML基基本本概概念念,XML的的三三种种显显示示样样式式:CSS(Cascading Style Sheet,层层叠叠式式样样式式表表单单)、XSL(Extensible Style Language, 扩扩 展展 的的 标标 记记 语语 言言 )和和 Data Island(数据岛)(数据岛)n如何利用如何利用JSP操作操作XML文件。文件。XML数据操作接口本章习题n9-1. 简述简述XML和和HTML的区别与联系。的区别与联系。n9-2. XML文档由哪些部分组成?各有什么作用文档由哪些部分组成?各有什么作用? 如何如何在在XML文件中输出大于号?文件中输出大于号?n9-3. XML文件如何调用文件如何调用CSS样式文件?如何调用样式文件?如何调用XSL样式文件?如何使用样式文件?如何使用XML数据岛技术?数据岛技术?n9-4. 简述常用的三种中文字符集。简述常用的三种中文字符集。n9-5.名词解释名词解释:DOMSAXJDOM(企业笔试题)(企业笔试题)n9-6名词解释:名词解释:Xerces xalan(企业笔试题)(企业笔试题)n9-7利用三种方法读取利用三种方法读取9-01.xml文件。(上机完成)文件。(上机完成)XML数据操作接口XML数据操作接口
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号