目录html
XMLpython
DTD(文档类型定义)web
DTD实体json
JSON后端
XML和JSON的区别 浏览器
XML的优缺点服务器
JSON的优缺点函数
XML和JSON都是web存储和传输过程当中数据的格式,其中JSON 使用比较普遍,主要用来先后端交互数据。spa
XML(Extensible Markup Language)扩展标记语言 ,是一种经常使用的标记语言,用于标记电子文件使其具备结构性,能够用来标记数据、定义数据类型,是一种容许用户对本身的标记语言进行定义的源语言。XML和SGML都是SGML(Standard Generalized Markup Language)。 XML使用 DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。
XML是标准通用标记语言 (SGML) 的子集,很是适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
#XML声明 <?xml version="1.0" encoding="UTF-8"?> #文档类型定义DTD <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> #文档元素 <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Hello,word!</body> </note>
XML文档的构建模块
全部的 XML 文档(以及 HTML 文档)均由如下简单的构建模块构成:
下面是每一个构建模块的简要描述。
1:元素
元素是 XML 以及 HTML 文档的主要构建模块,元素可包含文本、其余元素或者是空的。
实例:
<body>body text in between</body>
空的 HTML 元素的例子是 <hr>、<br> 以及 <img>。
2:属性
属性可提供有关元素的额外信息
实例:
<img src="computer.gif" />
3:实体
实体是用来定义普通文本的变量。实体引用是对实体的引用。
4:PCDATA
PCDATA 的意思是被解析的字符数据(parsed character data)。
PCDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记。
5:CDATA
CDATA 的意思是字符数据(character data)。
CDATA 是不会被解析器解析的文本。
DTD(文档类型定义)的做用是定义 XML 文档的合法构建模块。
DTD 能够在 XML 文档内声明,也能够外部引用。
1:内部声明:<!DOCTYPE 根元素 [元素声明] >
<?xml version="1.0"?> <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
2:外部声明(引用外部DTD):<!DOCTYPE 根元素 SYSTEM "文件名">
<?xml version="1.0"?> <!DOCTYPE note SYSTEM "http://127.0.0.1/note.dtd"> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note> #而http://127.0.0.1/note.dtd的内容为 <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>
DTD实体是用于定义引用普通文本或特殊字符的快捷方式的变量,能够 内部声明 或 外部引用。
实体又分为通常实体和参数实体
内部实体声明:<!ENTITY 实体名称 "实体的值">
#通常实体 <?xml version="1.0"?> <!DOCTYPE test [ <!ENTITY writer "Bill Gates"> <!ENTITY copyright "Copyright W3School.com.cn"> ]> <test>&writer;©right;</test>
外部实体声明:<!ENTITY 实体名称 SYSTEM "URI">
#通常实体 <?xml version="1.0"?> <!DOCTYPE test [ <!ENTITY writer SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd"> <!ENTITY copyright SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd"> ]> <author>&writer;©right;</author> #参数实体 <?xml version="1.0"?> <!DOCTYPE test [ <!ENTITY %writer SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd"> <!ENTITY %copyright SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd"> ]> <author>%writer;%copyright;</author>
JSON全称JavaScaript对象表示法(JavaScript Object Notation),是存储和交换文本信息的语法。具备文本量更小、更快和更易解析的特色。Json和HTML不同,HTML主要用于显示数据,JSON主要用于传递数据,因此通常做为数据的查询接口。
在 JS 语言中,一切都是对象。所以,任何支持的类型均可以经过 JSON 来表示,例如字符串、数字、对象、数组等。可是对象和数组是比较特殊且经常使用的两种类型:
JSON键值对表
{ "name":"xie", "sex" :"man", "id" : "66" } 注意: ""和值之间不能有空格,否则取值的时候会出错
JSON数组
表示一: [ { "name":"xie", "sex" :"man", "id" : "66" }, { "name":"xiao", "sex" :"woman", "id" : "88" }, { "name":"hong", "sex" :"woman", "id" : "77" }] 表示二: { "name":["xie","xiao","hong"], "sex" :["man","woman","woman"], "id" :["66","88","77"] } 表示三: { "student":[ { "name":"xie", "sex" :"man", "id" : "66" }, { "name":"xiao", "sex" :"woman", "id" : "88" }, { "name":"hong", "sex" :"woman", "id" : "77" }] }
对于表示法一和表示法二方法表示的JSON数据,能够采用下面方法读取JSON数据
1.json是上面的表示法一 ,2.json是上面的表示法二。能够看出,虽然数据是同样的,可是数据读取出来的排序是不同的。
查询列的话直接 ['name'] ,查询行的话data.iloc[0] 表示第一行,或者 data.loc['1'] 表示打印出行名1的那行
而对于表示法三表示的数据,则能够经过下面的方法读取。把数据读取在 jsonObject 对象中,而后访问数据的话,一层一层的访问。
jsonString是JSON的字符串格式数据,若是没有解码,调用decode() 函数便可
json.loads( jsonString )
XML的优势:
XML的缺点:
JSON的优势:
JSON的缺点: