xml与Json

一、ML是可扩展标记语言,XML与JSON是软件与软件之间进行交流的格式,XML和JSON指的一般都是字符串不是文件,他具有平台无关性,是一门独立的标记语言,他也具有自我描述性,他可以自身去描述自身。

二、XML的语法格式

XML在开头的时候会有文档声明

Xml指的是自己是一个xml的文档

Version = 1.0是指自己的版本是1.0

encoding="UTF-8"指的是他的编码是UTF-8

对于XML来说他最大的特性就是可以扩展的,它是由一个个标记所组成的所以他会拥有开始标记和结束标记。

标记名称: 自定义名称,必须遵循以下命名规则:

1.名称可以含字母、数字以及其他的字符

2.名称不能以数字或者标点符号开始

3.名称不能以字符 “xml”(或者 XML、Xml)开始

4.名称不能包含空格,不能包含冒号(:)

5.名称区分大小写

标记内容: 开始标记与结束标记之间 ,是标记的内容.

一个XML文档中, 必须有且且仅允许有一个根标记.

正例:

(这个就是大标记由一个包含所有并且只能有一个)

张三

李四

反例:

李四

麻子

标记可以嵌套, 但是不允许交叉.

正例:

李四

18

反例:

李四

18


标记的层级称呼(子标记, 父标记 , 兄弟标记, 后代标记 ,祖先标记)

例如:

李四

180cm

李四

200cm

name是person的子标记.也是person的后代标记

name是persons的后代标记.

name是length的兄弟标记.

person是name的父标记.

persons是name的祖先标记.

[if !supportLists]三、[endif]XML的解析

XML一共有4种解析方式,

第一种是SAX解析,

优点:

分析能够立即开始,而不是等待所有的数据被处理

逐行加载,节省内存.有助于解析大于系统内存的文档

有时不必解析整个文档,它可以在某个条件得到满足时停止解析.

缺点:

1. 单向解析,无法定位文档层次,无法同时访问同一文档的不同部分数据(因为逐

行解析, 当解析第n行是, 第n-1行已经被释放了, 无法在进行操作了).

2. 无法得知事件发生时元素的层次, 只能自己维护节点的父/子关系.

3. 只读解析方式, 无法修改XML文档的内容.

第二种是DOM解析

优点:

文档在内存中加载, 允许对数据和结构做出更改.

访问是双向的,可以在任何时候在树中双向解析数据。

缺点:

文档全部加载在内存中, 消耗资源大.

第三种是JDOM解析,基于DOM改进

优点:

使用具体类而不是接口,简化了DOM的API。

大量使用了Java集合类,方便了Java开发人员。

缺点

没有较好的灵活性。

性能不是那么优异。

第四种是DOM4J,基于DOM改进,非常优秀大部分使用源。

[if !supportLists]四、[endif]在2005/06年由于雅虎和谷歌的推动,JSON开始逐步代替XML,相比于XML JSON的格式程序员解析起来更加容易,JSON的格式机器上解析起来效率也比XML要快,所以JSON成为了传数据的主流格式。


Json的格式


JSON:

{

"name":"金苹果",

"info":"种苹果"

} 原则上引号可以省略,但是java中会出错所以不省略

字符串的话用引号,数字的话可以不用。目前来说java官方没有Json的解析,目前一般使用GSON或者fastJson。

你可能感兴趣的:(xml与Json)