




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11章
数据交换格式孙焘重点:XML格式
1JSON格式
2读写XML的常用类
3JSON在HTML中的应用
4难点:XML格式
1读写XML的常用类
211.1XML格式Xml简介
Xml发展史
Xml的优点
Xml的标准结构Xml的实例
11.1XML格式Xml简介什么是XML:1.XML指可扩展标记语言(ExtensibleMarkupLanguage)2.XML是一种标记语言,很类似HTML3.XML的设计宗旨是传输数据,而非显示数据4.XML标签没有被预定义。您需要自行定义标签。5.XML被设计为具有自我描述性。6.XML是
W3C的推荐标准11.1XML格式Xml简介Xml与HTML的主要差异:1.XML不是HTML的替代。2.XML和HTML为不同的目的而设计:3.XML被设计为传输和存储数据,其焦点是数据的内容。4.HTML被设计用来显示数据,其焦点是数据的外观。5.HTML旨在显示信息,而XML旨在传输信息11.1XML格式Xml发展史XML的前身是SGML(TheStandardGeneralizedMarkupLanguage),是自IBM从60年代就开始发展的GML(GeneralizedMarkupLanguage)
同HTML一样,XML(可扩展标识语言)是通用标识语言标准(SGML)的一个子集,它是描述网络上的数据内容和结构的标准。尽管如此,XML不象HTML,HTML仅仅提供了在页面上显示信息的通用方法(没有上下文相关和动态功能),XML则对数据赋予上下文相关功能,它继承了SGML的大部分功能,却使用了不太复杂的技术。
11.1XML格式Xml的优点1.XML把数据从HTML分离2.XML简化数据共享3.XML简化数据传输4.XML简化平台的变更5.XML使您的数据更有用6.XML用于创建新的Internet语言11.1XML格式11.1XML格式Xml的标准结构1.XML文件的第一行必须是声明该文件是XML文件以及它所使用的XML规范版本。在文件的前面不能够有其它元素或者注释。2.在XML文件中有且只能够有一个根元素。我们的第一个例子中,〈参考资料〉...〈/参考资料〉就是此XML文件的根元素。11.1XML格式Xml的标准结构构3.在XML文件中的标标记必须正正确地关闭闭,也就是是说,在XML文件中,控控制标记必必须有与与之对应的的结束标记记。如:〈名称〉标记必须有有对应的〈/名称〉结束标记,,不像HTML,某些标记记的结束标标记可有可可无。如果果在XML文件中遇到到自成一个个单元的标标记,就是是类似于HTML中的〈imgsrc=.....〉的这这些些没没有有结结束束标标记记的的时时候候,,XML把它它称称为为““空空元元素素””,,必必须须用用这这样样的的写写法法::〈空元元素素名名/〉〉,如如果果元元素素中中含含有有属属性性时时写写法法则则为为::〈空元元素素名名属属性性名名=““属性性值值””/〉〉。11.1XML格式式Xml的标标准准结结构构4.标记记之之间间不不得得交交叉叉。。在在以以前前的的HTML文件件中中,,可可以以这这样样写写::〈B〉〉〈〈H〉〉XXXXXXX〈〈/B〉〉〈〈/H〉〉,〈〈B〉〉和〈H〉〉标记记之之间间有有相相互互重重叠叠的的区区域域,,而而在在XML中,,是是严严格格禁禁止止这这样样标标记记交交错错的的写写法法,,标标记记必必须须以以规规则则性性的的次次序序来来出出现现。。5.属性性值值必必须须要要用用““””号号括括起起来来。。如如第第一一个个例例子子中中的的““1.0””、““gb2312””、““人人民民币币””。。都都是是用用““””号号括括起起来来了了的的,,不不能能漏漏掉掉。。6.控制制标标记记、、指指令令和和属属性性名名称称等等英英文文要要区区分分大大小小写写。。与与HTML不同同的的是是,,在在HTML中,,类类似似〈B〉〉和〈b〉〉的标标记记含含义义是是一一样样的的,,而而在在XML中,,类类似似〈name〉〉、〈NAME〉〉或〈Name〉〉这样样的的标标记记是是不不同同的的。。11.1XML格式式Xml的标标准准结结构构7.在HTML文件件中中,,如如果果要要浏浏览览器器原原封封不不动动地地将将所所输输入入的的东东西西显显示示出出来来,,可可以以将将这这些些东东西西放放到到〈pre〉〉〈〈/pre〉〉或者者〈xmp〉〉〈〈/xmp〉〉标记记中中间间。。这这对对于于创创建建HTML教学学的的网网页页是是必必不不可可少少的的,,因因为为网网页页中中要要显显示示HTML的源源代代码码。。而而在在XML中,,要要实实现现这这样样的的功功能能,,就就必必须须使使用用CDATA标记记。。8.XML处理理空空白白字字符符和和HTML不一一样样。。HTML标准准规规定定,,不不管管有有多多少少个个空空白白,,都都当当作作一一个个空空白白来来处处理理;而在在XML中规规定定,,所所有有标标记记以以外外的的空空白白,,解解析析器器都都要要忠忠实实地地交交给给下下游游的的应应用用程程序序处处理理。。这这样样,,有有时时必必须须摒摒弃弃编编写写HTML文件件时时的的缩缩排排习习惯惯,,因因为为缩缩排排的的空空格格,,解解析析器器也也要要处处理理。11.1XML格式式Xml的标标准准结结构构符合合上上述述规规定定的的XML文件件就就是是Well-Formed的XML文件件。。这这是是编编写写XML文件件的的最最基基本本要要求求。。可可以以看看到到XML文件件的的语语法法规规定定比比HTML要严严格格多多了了。。由由于于有有这这样样的的严严格格规规定定,,软软件件工工程程师师编编写写XML的解解析析器器就就容容易易多多了了,,不不像像编编写写HTML语言言的的解解析析器器,,必必须须费费尽尽心心思思去去适适应应不不同同的的网网页页写写法法,,提提高高自自己己浏浏览览器器的的适适应应能能力力。。实实际际上上,,这这对对于于我我们们初初学学者者来来说说,,也也是是一一件件好好事事。。该该怎怎样样就就怎怎样样,,不不必必像像原原来来那那样样去去疑疑惑惑各各种种HTML的写写法法。。11.1XML格式式Xml的实实例例11.1XML格式式11.2JSON格式式Json的定定义义Json构建建的的结结构构Json的具具体体形形式式Json与Xml的比比较较Json实例例11.2JSON格式式Json的定定义义JSON(JavaScriptObjectNotation)是一一种种轻轻量量级级的的数数据据交交换换格格式式。。易易于于人人阅阅读读和和编编写写。。同同时时也也易易于于机机器器解解析析和和生生成成。。它它基基于于JavaScript(StandardECMA-2623rdEdition-December1999)的的一一个个子子集集。。JSON采用用完完全全独独立立于于语语言言的的文文本本格格式式,,但但是是也也使使用用了了类类似似于于C语言言家族族的的习习惯惯((包包括括C,C++,C#,Java,JavaScript,Perl,Python等))。。这这些些特特性性使使JSON成为为理理想想的的数数据据交交换换语语言言。。11.2JSON格式式Json构建建的的结结构构1.““名称称/值””对对的的集集合合((Acollectionofname/valuepairs)。。不不同同的的语语言言中中,,它它被被理理解解为为对对象象((object),,纪纪录录((record),,结结构构((struct),,字典典(dictionary),,哈希希表表(hashtable),,有有键键列列表表((keyedlist),,或或者者关关联联数组(associativearray)。2.值的有序列表表(Anorderedlistofvalues)。在大部分分语言中,它它被理解为数数组(array)。这些都是常见见的数据结构。事实上大部部分现代计算机语言都以某种种形式支持它它们。这使得得一种数据格格式在同样基基于这些结构构的编程语言之间交换换成为可能。。11.2JSON格式Json的具体形式1、对象是一个个无序的“‘‘名称/值’对”集合合。一个对象象以“{”(左括号)开开始,“}”(右括号)结结束。每个““名称”后跟跟一个“:”(冒号);““‘名称/值’对”之之间使用“,”(逗号)分隔隔。11.2JSON格式Json的具体形式2.数组是值(value)的有序集合合。一个数组组以“[”(左中括号))开始,“]”(右中括号))结束。值之之间使用“,”(逗号)分隔隔。11.2JSON格式Json的具体形式3、值(value)可以是双引引号括起来的的字符串(string)、数值(number)、true、false、null、对象(object)或者数组((array)。这些结构构可以嵌套。。。11.2JSON格式Json的具体形式4、字符串(string)是由双引号号包围的任意意数量Unicode字符的集合,,使用反斜线线转义。一个个字符(character)即一个单独独的字符串((characterstring)。字符串(string)与C或者Java的字符串非常常相似。11.2JSON格式Json的具体形式5、数值(number)也与C或者Java的数值非常相相似。除去未未曾使用的八八进制与十六六进制格式。。除去一些编编码细节。11.2JSON格式Json与Xml的比较◆可读性JSON和XML的可读性可谓谓不相上下,,一边是简易易的语法,一一边是规范的的标签形式,,很难分出胜胜负。◆可扩展性XML天生有很好的的扩展性,JSON当然也有,没没有什么是XML能扩展,JSON不能的。不过过JSON在Javascript主场作战,可可以存储Javascript复合对象,有有着xml不可比拟的优优势。◆编码难度XML有丰富的编码码工具,比如如Dom4j、JDom等,JSON也有提供的工具。。无工具的情情况下,相信信熟练的开发发人员一样能能很快的写出出想要的xml文档和JSON字符串,不过过,xml文档要多很多多结构上的字字符。◆解码难度XML的解析得考虑虑子节点父节节点,而JSON的解析难度几几乎为0。11.2JSON格式Json实例XML和JSON都使用结构化化方法来标记记数据,下面面来做一个简简单的比较。。
现假设有有一个用户数数据包括:用用户名、密码码、所在部门门、性别、年年龄。
用XML表示如下:<?xmlversion="1.0"encoding="utf-8"?>
<user><name>张三</name>
<password>123456</password><department>技术部</department>
<sex>男</sex>
<old>30</old></user>11.2JSON格式Json实例用JSON表示如下:{
"name":"张三",
"password":"123456",
"department":"技术部",
"sex":"男",
"old":30
}与XML一样,JSON也是基于文本本的,且它们们都使用Unicode编码,同样具具有可读性。。XML比较适合于标标记文档,而而JSON却更适合于时时行数据交换换处理。11.3读写XML的常用类在java环境下读取xml文件的方法主主要有4种:DOM、SAX、JDOM、JAXBDOMSAXJDOMJAXB11.3读写XML的常用类DOM(DocumentObjectModel)此方法主要由由W3C提供,它将xml文件全部读入入内存中,然然后将各个元元素组成一棵棵数据树,以以便快速的访访问各个节点点。因此此非常消耗系系统性能,,对比较大的的文档不适宜宜采用DOM方法来解析。。DOMAPI直接沿袭了XML规范。每个结结点都可以扩扩展的基于Node的接口,就多多态性的观点点来讲,它是是优秀的,但但是在Java语言中的应用用不方便,并并且可读性不不强。11.3读写XML的常用类DOM(DocumentObjectModel)//下面是建立XML文档内容的过过程,先建立立根元素"学生花名册“
Elementroot=doc.createElement("学生花名册");//根元素添加上上文档doc.appendChild(root);
//建立"学生"元素,添加到到根元素Elementstudent=doc.createElement("学生");student.setAttribute("性别",studentBean.getSex());root.appendChild(student);//建立"姓名"元素,添加到到学生下面,,下同Elementname=doc.createElement("姓名");student.appendChild(name);
TexttName=doc.createTextNode(studentBean.getName());name.appendChild(tName);11.3读写XML的常用类SAX(SimpleAPIforXML)此方法主要由由XML-DEV邮件列表的成成员开发的,,SAX是基于事件的的方法,它很很类似于标签签库的处理机机制,在标签签开始、结束束以及错误发发生等等地方方调用相应的的接口实现方方法,不是全全部文档都读读入内存。SAX具有优异的性性能和利用更更少的存储空空间特点。SAX的设计只考虑虑了功能的强强大性,却没没有考虑程序序员使用起来来是否方便。。使用必须扩展展ContentHandler、ErrorHandler、DTDHandler等,但是必须须扩展ContentHandler(或者DefaultHandler)。11.3读写XML的常用类SAX(SimpleAPIforXML)取得元素数据据的方法——characters取得元素数据据中的空白的的方法——ignorableWhitespace在解析到处理理指令时调用用的方法——processingInstruction当未验证解析析器忽略实体体时调用的方方法——skippedEntity运行时,只需需要使用下列列代码:MySAXParsermySAXParser=newMySAXParser();mySAXParser.parserXMLFile("SutInfo.xml");11.3读写XML的常用类JDOMJDOM的处理方式有有些类似于DOM,但它主要是是用SAX实现的。JDOM用Java的数据类型来来定义操作数数据树的各个个节点。JDOM的性能也很优优越。11.3读写XML的常用类JAXB(JavaAndXMLBinding)JAXB是以SUN为主的一些公公司公布的。。JAXB将schema(或者DTD)映射为java对象(.java文件),然后后使用这些java对象来解析xml文件。需要使使用之前生成成java文件,因而要要有固定的schema,无法处理动动态的xml文件。11.4JSON在HTML中的应用JSON在HTML中的应用json是javascript面向对象语法法的一个子集集。由于json是javascript的一个子集,,因此它可清清晰的运用于于此语言中。。varmyjsonobject={"bindings":[{"ircevent":"privmsg","method":"newuri","regex":"^http://.*"},{"ircevent":"privmsg","method":"deleteuri","regex":"^delete.*"},{"ircevent":"privmsg","method":"randomuri","regex":"^random.*"}]};11.4JSON在HTML中的应用JSON在HT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论