xml:
1、扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,
2.是一种允许用户对自己的标记语言进行定义的源语言。 
3.XML是使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。
4.XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
xml 和 json 的区别 :    
1.可读性方面:基本相同,相对json来说xml可读性较好

2.可扩展方面:两者都具有良好的扩展性

3.编码难度方面:相对而言,json的编码较为容易

4.解码方面:json的话一个json_decode()函数就搞定啦,xml需要考虑子节点 and 父节点

5.数据体积方面:JSON相对于XML来讲,数据体积小,传递的速度比较快;

6.数据交互方面:JSON与javascript的交互更加方便,更容易解析处理,更好的数据交互;

7.数据描述方面:XML对数据描述性比较好;

8.传输速度方面:JSON的速度远远快于XML。


xml及json实现的底层原理:
       XML和JSON都使用结构化方法来标记数据

  1. JSON底层原理:遍历字符串中的字符,最终根据格式规定的特殊字符,比如{}、[]、:等进行区分,{}号表示字典,[]号表示数组,:号是字典的键和值的分水岭,最终仍是将JSON转化为字典,只不过字典中的值可能是“字典、数组或者字符串而已”。

  2. XML底层原理:XML解析常用的解析方法有两种:DOM解析和SAX解析;DOM采用的是树形结构的方式访问XML文档,而SAX采用的是事件模型;DOM解析把XML文档转化为一个包含其内容的树,并可以对树进行遍历,使用DOM解析器的时候需要处理整个XML文档,所以对内存和性能的要求比较高;SAX在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,他可以激活一个回调方法,告诉该方法指定的标签已经找到,SAX对内存的要求通常会比较低,因为他让开发人员自己来决定所要处理的tag,特别是当开发人员只需要处理文档中所包含部分数据时,SAX这种扩展能力得到了更好的体现。