Java面试题-day13 XML

XML

1) xml 有哪些解析技术? 区别是什么?

有 DOM,DOM4j,SAX等
DOM: 一次性将整个文档加载到内存中, 生成一个对象树, 在处理大型文 件时其性能下降的非常厉害。
DOM4J: 对 DOM 的进一步封装, API 使用更简洁
SAX:基于事件驱动的方法回调机制。每读取一小部分数据时就会回调事件 处理器对象的方法, 但解析一旦开始就不能停止.

2) 你在项目中用到了 xml 技术的哪些方面? 如何实现的?

用到了数据存贮,信息配置两方面。
在做数据交换平台时,将数据源的数据组装成 XML 文件,然后将 XML 文件压缩打包加密后通过网络传送给接收者,接收解密与解压缩后再同 XML 文件中还原相关信息进行处理。
在做软件配置时,利用 XML 可以很方便的进行,软件的各种配置参数都存贮在 XML 文件中。

3) 什么是格式良好的 XML

一个格式良好的 XML 意味着该 XML 文档语法上是正确的,比如它有一个根元素,所有的开放标签合适地闭合,属性值必须加引号等等。
如果一个 XML 不是格式良好的,那么它可能不能被各种 XML 解析器正确地处理和解析。

4) 说说你对 JSON的理解

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于标准JavaScript 的一个子集,是一个 Js 对象或数组结构的字符串。
JSON 有三类数据

  1. 单个数据
    有 number, string, boolean 和 null 四种类型数据
  2. 多个有序的数据: 数组
    用[]包含起来, 其元素可以是三类数据中的任意一种, 元素之间用,号隔开
  3. 多个无序的数据: 对象
    用{}包含起来, 其元素必须由 key-value 组成, key 是一个字符串, value 可以是任意类型数据, key 与 value 之间用:号隔开, 两个 key-value 之间用,号隔开.

5) XML和JSON的比较

1.数据交换格式比较之关于XML和JSON:

XML:extensible markup language,一种类似于HTML的语言,他没有预先定义的标 签,使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平 台和语言,早已成为业界公认的标准。具体的可以问Google或百度。相比之JSON 这种轻量级的数据交换格式,XML可以称为重量级的了。
JSON : JavaScript Object Notation 是一种轻量级的数据交换格式。易于人阅读和编写。 同时也易于机器解析和生成。它基于JavaScript Programming Language , Standard ECMA-262 3rd Edition – December 1999 的一个子集。JSON采用完全独立于语言的 文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

2.数据交换格式比较之关于轻量级和重量级:

轻量级和重量级是相对来说的,那么XML相对于JSON的重量级体现在哪呢?我想 应该体现在解析上,XML目前设计了两种解析方式:DOM和SAX;
DOM是把一个数据交换格式XML看成一个DOM对象,需要把XML文件整个读入 内存,这一点上JSON和XML的原理是一样的,但是XML要考虑父节点和子节点, 这一点上JSON的解析难度要小很多,因为JSON构建于两种结构:key/value,键 值对的集合;值的有序集合,可理解为数组;
SAX不需要整个读入文档就可以对解析出的内容进行处理,是一种逐步解析的方法。 程序也可以随时终止解析。这样,一个大的文档就可以逐步的、一点一点的展现出 来,所以SAX适合于大规模的解析。这一点,JSON目前是做不到得。
所以,JSON和XML的轻/重量级的区别在于:JSON只提供整体解析方案,而这种 方法只在解析较少的数据时才能起到良好的效果;而XML提供了对大规模数据的 逐步解析方案,这种方案很适合于对大量数据的处理。

3.数据交换格式比较之关于数据格式编码及解析的难度:

在编码上,虽然XML和JSON都有各自的编码工具,但是JSON的编码要比XML简 单,即使不借助工具,也可以写出JSON代码,但要写出好的XML代码就有点困 难;与XML一样,JSON也是基于文本的,且它们都使用Unicode编码,且其与数 据交换格式XML一样具有可读性。
主观上来看,JSON更为清晰且冗余更少些。JSON网站提供了对JSON语法的严格 描述,只是描述较简短。从总体来看,XML比较适合于标记文档,而JSON却更适 于进行数据交换处理。
在解析上,在普通的web应用领域,开发者经常为XML的解析伤脑筋,无论是服 务器端生成或处理XML,还是客户端用JavaScript 解析XML,都常常导致复杂的 代码,极低的开发效率。

猜你喜欢

转载自blog.csdn.net/m0_56368068/article/details/120942774
今日推荐