对于解析的理解
2016-08-09 10:16
141 查看
请描述SAX、DOM、PULL解析xml的原理,以及各自优缺点。 参考答案:
SAX以事件驱动为原型进行解析,事件驱动的类型分为开始文档,借宿文档,开始标签,结束标签 ,优点是一种解析速度快并且占用内存少的xml解析器。
缺点是它不会记录标签的关系,而要让你的应用程序自己处理,这样就增加了你程序的负担。
DOM是一种文档对象模型,DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。Dom技术使得用户页面可以动态地变化,如 可以动态地显示或隐藏一个元素,改变它们的属性,增加一个元素等,Dom技术使得页面的交互性大大地增强。缺点是DOM解析XML文件时,会将XML文件 的所有内容以文档树方式存放在内存中。
Pull解析和Sax解析很相似,Pull解析和Sax解析不一样的地方是pull读取xml文件后触发相应的事件调用方法返回的是数字,还有pull可以在程序中控制想解析到哪里就可以停止解析
Json数据是一系列的键值对的集合,和XML数据来比,Json数据的体积更加小,传输效率高,易解析,不过可读性不高;
一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案,从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。
json是一种数据格式,便于数据传输、存储、交换
gson是一种组件库,可以把java对象数据转换成json数据格式
GSON:
首先在服务器端,将服务器端的Person对象通过Gson解析成json的字符串;然后在客户端,通过Gson类将json的字符串还原为Person对象。Gson支持任意复杂Java对象包括没有源代码的对象。
如果我们将Person对象看成一个泛型,那么不管服务器端的Person对象是什么类型,都可以解析出来。
Gson库神奇在哪里呢?如果解析的是Json对象,它主要就是可以将一段Json格式的字符串自动映射成一个对象,从而不需要我们再手动去编写代码进行解析了
如果是一段JSON数组,就借助TypeToken将期望解析成的数据类型传入到fromJson()方法中。
SAX以事件驱动为原型进行解析,事件驱动的类型分为开始文档,借宿文档,开始标签,结束标签 ,优点是一种解析速度快并且占用内存少的xml解析器。
缺点是它不会记录标签的关系,而要让你的应用程序自己处理,这样就增加了你程序的负担。
DOM是一种文档对象模型,DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。Dom技术使得用户页面可以动态地变化,如 可以动态地显示或隐藏一个元素,改变它们的属性,增加一个元素等,Dom技术使得页面的交互性大大地增强。缺点是DOM解析XML文件时,会将XML文件 的所有内容以文档树方式存放在内存中。
Pull解析和Sax解析很相似,Pull解析和Sax解析不一样的地方是pull读取xml文件后触发相应的事件调用方法返回的是数字,还有pull可以在程序中控制想解析到哪里就可以停止解析
Json数据是一系列的键值对的集合,和XML数据来比,Json数据的体积更加小,传输效率高,易解析,不过可读性不高;
一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案,从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。
json是一种数据格式,便于数据传输、存储、交换
gson是一种组件库,可以把java对象数据转换成json数据格式
GSON:
首先在服务器端,将服务器端的Person对象通过Gson解析成json的字符串;然后在客户端,通过Gson类将json的字符串还原为Person对象。Gson支持任意复杂Java对象包括没有源代码的对象。
如果我们将Person对象看成一个泛型,那么不管服务器端的Person对象是什么类型,都可以解析出来。
Gson库神奇在哪里呢?如果解析的是Json对象,它主要就是可以将一段Json格式的字符串自动映射成一个对象,从而不需要我们再手动去编写代码进行解析了
如果是一段JSON数组,就借助TypeToken将期望解析成的数据类型传入到fromJson()方法中。
相关文章推荐
- 对于DNS预解析的理解
- 对于java中访问权限的理解与解析
- 对于json多维解析的一些理解
- iOS清除缓存详细解析、app文件路径操作,自己个人对于沙盒的理解
- 栈对于表达式求值的特殊作用&&UVa442 Matrix Chain Multiplication(矩阵链乘)的理解与解析
- 对于ARM加载时、运行时地址的理解,各位多指教。
- 链接器解析外部符号的过程 深入理解计算机系统 P475 注:在链接时的注意事项
- 对于分布式的理解
- 对于volatile的理解
- 对于const的理解
- 对于关键字Ref和Out的理解
- 对于交叉编译的理解
- 对于MVC应该理解的一些问题
- c#对于如何释放资源的解释,又让我对此语言有更进一步的理解
- 深入理解Struts 2.1及应用开发实例解析
- 我对于“Tag”的理解
- 对于.NET中接口的理解
- 对于项目分析的一点理解
- Grid事件解析与有关ItemCreated和ItemDataBound与ItemCommand的理解
- 对于关键字Ref和Out的理解