xml文件读写总结
来源:互联网 发布:mac怎么关闭访客 编辑:程序博客网 时间:2024/05/23 01:10
前一段时间参与了一个项目,要用到xml文件的读写,可是自己原来就没有用过xml文件,怎么读写,用设么读写,一时间脑子混乱,不知道该怎么办,随后经过别人的指导,在网上找了一些开源的库,慢慢的一个库一个库的试用
tinyxml:这个库是第一次试用的开源库,都可以在网上下载到,关于这个库的使用方法,网上有很多博客写到了,我就不在这里赘述了,源码下载网站:http://www.grinninglizard.com/tinyxml/ ,关于xml文件的解析,我也是看了别人写的博客知道的,具体参考地址:http://blog.csdn.net/weiqubo/article/details/6913260 ,其实读写很简单,就总结自己遇到的问题吧,因为本人所参与的这个项目是涉及到的xml文件非常大上百兆或好几个GB,所以就需要主要考虑内存,速度。tinyxml封装的很好,面向对象性比较强,最大的问题就是这个库不能读取上百兆的文件,至于具体是大于多少兆不能读取,具体没有测试,用了20mb的xml文件,可以正常读取,但是非常慢,得要十分钟左右才能遍历完。。用150mb的xml文件测试的时候就不能读取了。所以当我把我需要的功能都封装好后,再用他测试的时候是多么的悲催,得重新选择库,重新写代码。
总结:在使用一个开源库的时候,当你不确定你所需要的功能他是否可以达到的时候,先不要着急的去实现功能,不要着急的了解这个库的功能,先做好各个模块的设计,专门测试一下自己用的这个库,当这个库在内存,速度,等各个重要的方面能达到自己的要求的时候再去使用这个库,这样就减少了不少的产能。
cmarkup:这个库用起来没什么问题,就是不是很方便,封装的不是很好,如果要读取比较小的xml文件的话,还是推荐用tinyxml,而且速度不如rapidxml快,这个库可以读取150mb的xml文件,再大的xml没有测过,也不确定是否能使用
rapidxml:速度比较快,可以读取150mb左右的xml文件,用起来还行,不过还是没有tinyxml好用
读取xml文件过程中没有涉及到xml文件的编码问题,内存都差不多,就是最终测的rapidxml的虚度的确很快。其实对于xml文件的读取方式都差不多,只要会用一个库了,就差不多都会用了,只是开源库封装的方法不一样,接口不一样。
数据的存储:在读取xml文件后,将读取的xml文件数据起初是用map存储,最后感觉map比较慢,就改用了hash_map,但是我用的vc6没有hash_map,于是改用vs2005;之前的map用的是以CString为关键字的,这个在hashmap中行不通,hashmap不支持CString,这是上网查了才知道的,浪费了很多时间,又将CString改为string。
发版:临近发办的时候我还在用debug版本跑,可是150mb的数据要用差不多两个半小时才能跑完,之后别人说用release版本跑一下试试,用release版本一跑,用了10分钟左右,真是大吃一惊,虽然之前也知道发版是发的release版本,但是自己从来没有测试过debug版本与release版本的效率对比,可鉴release版本是优化了很多,但是至于都优化了设么,还是需要自己跑慢慢学习,研究...
学习中。。。
- xml文件读写总结
- C# Xml文件的读写总结
- Java 读写XML总结
- xml读写总结
- C#读写xml总结
- C# 读写XML文件的方法详细总结
- 读写XML文件
- 读写XML文件
- c#读写xml文件
- c#读写xml文件
- c#读写xml文件
- DOM 读写XML文件
- 读写XML文件
- C#读写xml文件
- 读写Xml文件
- c#读写xml文件
- javascript读写XML文件
- VC读写XML文件
- C# 汉字转换成拼音
- 程序员技术练级攻略
- 图片的文字变成wrod的方法
- Android 编译系统分析(一)
- nginx源码分析—启动流程
- xml文件读写总结
- php变量赋值与引用
- 第十三周【任务二】Animal设计为抽象类,每一个Animal的派生类都有一个“名字”数据成员
- 使用 Spring 2.5 基于注解驱动的 Spring MVC
- 十三周报告四
- oracle中中文格式日期转换
- why cannot sleep in the ISR
- Android学习之用adb连接模拟器查询sqlite数据库
- HTML-小总结