XML分析
解决问题
- 问题
- 应用程序和不同的厂商都有自己的数据结构和数据的交换形式,但程序是相互连通的,需要数据的传递,这就需要一种通用的数据交换方式,比如:企业和银行中台接口通信,他们各自都有自己的数据格式,企业可能在自己的一方在和页面交互和内部使用json格式传输数据,但是企业和银行之间需要一种通用的数据载体,因为银行面临不同的企业,这就用到了xml,企业把数据封装成xml发送到银行的前置机,前置机把报文转换在发送给银行中台,达到了数据交换的目的.
- 解决
- 采用一种通用的数据交换方式,可自定义数据,这种标准是通用的标准,xml就是这么一种实现方式
优势劣势
- 优势
- 扩展性
- 格式统一, 符合标准
- 容易与其他系统进行远程交互, 数据共享比较方便,也是当今处理分布式结构信息的有效工具
- 劣势
- 数据的有效载荷低和pack/unpack耗资源
- 客户端不同浏览器之间解析XML的方式不一致, 需要重复编写很多代码
适用场景
- XML做为数据交换的载体,用于数据的存储与传输
- XML做为配置文件
组成部分
xml约束
约束xml编写什么样内容,类似于集中校验,DTD约束和SCHEMA约束
解析方式
XML目前设计了两种解析方式:DOM和 SAX
- DOM是把一个数据交换格式XML看成一个DOM对象,需要把XML文件整个读入内存,这一点上JSON和XML的原理是一样的,但是XML要考虑父节点和子节点,这一点上JSON的解析难度要小很多,因为JSON构建于两种结构:key/value,键值对的集合;值的有序集合,可理解为数组;
- SAX不需要整个读入文档就可以对解析出的内容进行处理,是一种逐步解析的方法。程序也可以随时终止解析。这样,一个大的文档就可以逐步的、一 点一点的展现出来,所以SAX适合于大规模的解析。这一点,JSON目前是做不到得。
api
- 参考w3c的api文档
- 参考项目中的具体应用,抽取工具类
- Java 解析 XML
相似对比
- json和xml相同点
- 可读性:JSON和XML的数据可读性基本相同,一边是建议的语法,一边是规范的标签形式.
- 扩展性:扩展性都很好
- json和xml不同点
比较 | xml | json |
---|---|---|
编码难度 | 有难度 | 简单 |
解码难度 | 有难度 | 简单 |
流行度 | 广泛使用 | 刚开始 |
解析工具 | Dom4j、JDom | json.org |
数据体积 | 大 | 小 |
JavaScript交互 | 困难 | 方便 |
对数据描述性 | 好 | 一般 |
解析速度 | 慢 | 快 |
数据交换 格式比较 | 重量级:XML提 供了对大规模数据的逐步解析方案,这种方案很适合于对大量数据的处理 | 轻量级:JSON只提供整体解析方案,而这种方法只在解析较少的数据时才能起到良好的效果 |
DOM和 SAX | key/value,键值对的集合;值的有序集合,可理解为数组; | |
适用性 | XML比较适合于标记 文档 | JSON却更适于进行数据交换处理 |
接口,web serivice应用 | 与html交互 |
参考: