专栏首页Java3yXML和JSO的面试题(修订版)

XML和JSO的面试题(修订版)

前言

只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y

XML+JSON常见面试题

什么是JSON和XML

什么是JSON和XML

JSON:JavaScript Object Notation 【JavaScript 对象表示法】.

XML:extensiable markup language 被称作可扩展标记语言

JSON和XML都是数据交换语言,完全独立于任何程序语言的文本格式。

JSON与XML区别是什么? 有什么共同点

JSON与XML区别是什么? 有什么共同点

共同点:

  • 用于RPC远程调用数据交换格式
    • RPC远程调用简单理解:调用本地服务一样调用远程服务
    • 具体可参考@用心阁的答案:https://www.zhihu.com/question/25536695和@郑大侠的答案:https://www.zhihu.com/question/25536695/answer/134976748
    • RPC服务与HTTP服务对比:http://blog.csdn.net/wangyunpeng0319/article/details/78651998

区别:

  • XML文件格式复杂,比较占宽带,服务器端与客户端解析xml话费较多的资源和时间.
  • JSON文件格式压缩,占宽带小

JSON、XML解析有那些方式?

JSON、XML解析有那些方式?

  • JSON解析方式(阿里巴巴fastjson、谷歌gson,jackJson)
  • XML解析方式(dom、sax、pul)

XML和JSON优缺点

XML的优点

  • A.格式统一,符合标准;
  • B.容易与其他系统进行远程交互,数据共享比较方便

XML的缺点

  • A.XML文件庞大,文件格式复杂,传输占带宽;
  • B.服务器端和客户端都需要花费大量代码来解析XML,导致服务器端和客户端代码变得异常复杂且不易维护;
  • C.客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码;
  • D.服务器端和客户端解析XML花费较多的资源和时间。

JSON的优点

  • A.数据格式比较简单,易于读写,格式都是压缩的,占用带宽小;
  • B.易于解析,客户端JavaScript可以简单的通过eval_r()进行JSON数据的读取;
  • C.支持多种语言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服务器端语言,便于服务器端的解析;
  • D.因为JSON格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护

JSON的缺点

  • A.没有XML格式这么推广的深入人心和喜用广泛,没有XML那么通用性;
  • B.JSON片段的创建和验证过程比一般的XML稍显复杂。

参考:http://www.cnblogs.com/SanMaoSpace/p/3139186.html

XPath 是什么

XPath 是什么

XPath 是用于从 XML 文档检索元素的 XML 技术。XML 文档是结构化的,因此 XPath 可以从 XML 文件定位和检索元素、属性或值。从数据检索方面来说,XPath与 SQL 很相似,但是它有自己的语法和规则。了解更多查看怎样使用 XPath 从 XML 文档中检索数据

XML 命名空间是什么?它为什么很重要

XML 命名空间是什么?它为什么很重要

XML 命名空间与 Java 的 package 类似,用来避免不同来源名称相同的标签发生冲突。XML 命名空间在 XML 文档顶部使用 xmlns 属性定义,语法为 xmlns:prefix=’URI’。prefix 与XML 文档中实际标签一起使用。

下面例子为 XML 命名空间的使用。

<root xmlns:inst="http://instruments.com/inst"
<inst:phone>
<inst:number>837363223</inst:number>
</inst:phone>
</root>

DOM 和 和 SAX 解析器有什么区别

DOM 和 和 SAX 解析器有什么区别

  • DOM解析读取整个XML文档,在内存中形成DOM树,很方便地对XML文档的内容进行增删改。但如果XML文档的内容过大,那么就会导致内存溢出!
  • SAX解析采用部分读取的方式,可以处理大型文件,但只能对文件按顺序从头到尾解析一遍,不支持文件的增删改操作
  1. DOM是基于内存的,不管文件有多大,都会将所有的内容预先装载到内存中。从而消耗很大的内存空间。而SAX是基于事件的。当某个事件被触发时,才获取相应的XML的部分数据,从而不管XML文件有多大,都只占用了少量的内存空间。
  2. DOM可以读取XML也可以向XML文件中插入数据,而SAX却只能对XML进行读取,而不能在文件中插入数据。这也是SAX的一个缺点。
  3. SAX的另一个缺点:DOM我们可以指定要访问的元素进行随机访问,而SAX则不行。SAX是从文档开始执行遍历的。并且只能遍历一次。也就是说我们不能随机的访问XML文件,只能从头到尾的将XML文件遍历一次(当然也可以中间截断遍历)。

XSLT 是什么?

XSLT 是什么?

XSLT 也是常用的 XML 技术, 用于将一个 XML 文件转换为另一种 XML,HTML 或者其他的格式。XSLT 为转换 XML 文件详细定义了自己的语法,函数和操作符。通常由 XSLT 引擎完成转换,XSLT 引擎读取 XSLT 语法编写的 XML 样式表或者 XSL 文件的指令。XSLT 大量使用递归来执行转换。一个常见 XSLT 使用就是将 XML 文件中的数据作为 HTML 页面显示。XSLT 也可以很方便地把一种 XML 文件转换为另一种 XML 文档

本文分享自微信公众号 - Java3y(java3y),作者:Java3y

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-02-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • XML+JSON面试题都在这里

    XML+JSON常见面试题 什么是JSON和XML 什么是JSON和XML JSON:JavaScript Object Notation 【JavaScrip...

    Java3y
  • 什么是TensorBoard?

    这篇文章主要讲讲TensorBoard的基本使用以及name_scope和variable_scope的区别

    Java3y
  • 从零开始学XML(修订版)

    XML:extensiable markup language 被称作可扩展标记语言

    Java3y
  • XML是历史前进中的怪胎

    人的理性是有限的,甚至拙劣的,但理性中的人却很自负。互联网本身不是被理性事先设计出来的,但是我们总是想在互联网上再次理性设计,XML和区块链都是人类理性自负地结...

    Titan框架
  • XML+JSON面试题都在这里

    XML+JSON常见面试题 什么是JSON和XML 什么是JSON和XML JSON:JavaScript Object Notation 【JavaScrip...

    Java3y
  • 【面试】找工作必看的十道XML面试题

    XML并不依赖于其他编程语言,与SQL一样是编程人员所必备的技能之一,因此在任何技术工作面试之前准备一些XML问题都是很有意义的。老九君为大家整合了十道有关XM...

    老九君
  • Java简单面试题(XML)

    包括web开发人员的Java面试在内的各种面试中,XML面试题在各种编程工作的面试中很常见。XML是一种成熟的技术,经常作为从一个平台到其他平台传输数据的标准。...

    葆宁
  • 系统架构师论文-XML在网上银行中的应用

    网上银行是指在Internet上提供银行服务,即银行的客户无须到银行柜台办理业务,可以在家庭、办公室等能够连入Internet的任何一处,登录到银行的网站进行交...

    cwl_java
  • 系统架构师论文-论XML技术在Internet平台上的应用

    2002年10月,我参与了一个三层在线商城的项目开发,该项目整合了来自不同商家的信息,方便在线用户的查询和购买。 在该项目中,我担任系统分析的工作。在分析设计...

    cwl_java
  • Android 创建与解析XML(六)—— 比较与使用

    其中,从处理方式看,有的采用了Java处理XML的标准方式,有的是经过第三方改进后的XML处理方式;从事件角度看,有的是基于Dom树节点,有的基于事件处理

    阳光岛主

扫码关注云+社区

领取腾讯云代金券