若大的世界竟找不到一个合适 XML 读写库?
Markup:
以前以直用Markup,觉得它挺好的,简单实用,但今天一个项目中的BUG,我对它彻底绝望了,
在程序中只是把MSSQL数据库中的数据,转存为XML,做为测试数据量不是很大,记录数100条左右。居然用了50秒。调试发现
每增加一条记录,所用的时间成10倍增加。
仔细跟踪源代码才发现,是Markup频繁内存分配造成的,每动一下就要把原来的内存释放,然后重建内存。
本来想改造一下,工作量大了点,而且Markup本身就是用连续字符串来存储数据的,就算改造也不见得会有什么改观。
tinyxml:
实在没办法了,听说这个不错,拿过来看了看源代码,它的数据是使用树存储的增加数据也不会重建内存,但一看到到处 const char*,晕过去了。
竟然不支持UNICODE,从它的文档中看到,虽然支持UNICODE文件读写,但其代码接口只能使用多字节!!
MSXML:
最后,只有选择这个了,用起来非常的痛苦。主要是数据类型的转换,因为MSXML是基于COM的。
看来等这个项目过后,要自己动手写一个真正简单实用,而效率也不是太低的XML库。