若大的全世界竟找不到一个合适 XML 读写库
若大的世界竟找不到一个合适 XML 读写库?
Markup:
以前以直用Markup,觉得它挺好的,简单实用,但今天一个项目中的BUG,我对它彻底绝望了,
在程序中只是把MSSQL数据库中的数据,转存为XML,做为测试数据量不是很大,记录数100条左右。居然用了50秒。调试发现
每增加一条记录,所用的时间成10倍增加。
仔细跟踪源代码才发现,是Markup频繁内存分配造成的,每动一下就要把原来的内存释放,然后重建内存。
本来想改造一下,工作量大了点,而且Markup本身就是用连续字符串来存储数据的,就算改造也不见得会有什么改观。
tinyxml:
实在没办法了,听说这个不错,拿过来看了看源代码,它的数据是使用树存储的增加数据也不会重建内存,但一看到到处 const char*,晕过去了。
竟然不支持UNICODE,从它的文档中看到,虽然支持UNICODE文件读写,但其代码接口只能使用多字节!!
MSXML:
最后,只有选择这个了,用起来非常的痛苦。主要是数据类型的转换,因为MSXML是基于COM的。
看来等这个项目过后,要自己动手写一个真正简单实用,而效率也不是太低的XML库。
------解决方案--------------------
还有boost xml
------解决方案--------------------
偶现在用tinyxml
------解决方案--------------------
MS XML~
------解决方案--------------------
封装一下ms的即可
遇到xslt+xml还是ms强
------解决方案--------------------
Apache的,http://xerces.apache.org/xerces-c/,这个支持DOM也支持SAX/SAX2,如果你追求性能,用SAX/SAX2,因为是流式的,不需要建立DOM树,效率高。
因为你用的是MySQL,数据量应该不大,这个:http://multi-crash.com/?page_id=161
应该也不错,编码支持很多,性能也比TinyXML高。
------解决方案--------------------
SlimXml
RapidXml
------解决方案--------------------
Markup效率竟然有这么差,一直在用这个居然没有发现
------解决方案--------------------
pugixml,速度上可能是目前数一数二的xml库,小巧,完整源码只有3个文件,支持Unicode,支持XPath,
主页:http://pugixml.org/
官方有个性能比较:http://pugixml.org/benchmark/
------解决方案--------------------
CMarkup
------解决方案--------------------
expat,libxml都行啊
------解决方案--------------------
// pugixml,效率一流,就是类名之类的长了点,好处是可以望文生义。
// MSXML,效率还行。
// Markup对MSXML的封装库,可以兼容Markup
------解决方案--------------------
这个帖子 要 留名哈
含金量不错
------解决方案--------------------
Markup 用用的,100记录就这么夸张了还真没试过,就是十几二十条的记录在用
------解决方案--------------------
jff
------解决方案--------------------
学习了!
------解决方案--------------------
长见识了。只用markup解析一下配置文件的路过。
------解决方案--------------------
一样啊,支持配置文件的解析
------解决方案--------------------
libxml2
------解决方案--------------------
长见识了
------解决方案--------------------
C++ POCO库里的XML库。http://pocoproject.org/
------解决方案--------------------
tinyxml就符合你的要求
unicode你不会转一下啊
转成UTF-8写到xml里
读出来显示的话再从UTF-8转回来
------解决方案--------------------
unicode 和char 可以转换下用TINYXML。开源的,完全可以自己修改,定制。
------解决方案--------------------
Markup:
以前以直用Markup,觉得它挺好的,简单实用,但今天一个项目中的BUG,我对它彻底绝望了,
在程序中只是把MSSQL数据库中的数据,转存为XML,做为测试数据量不是很大,记录数100条左右。居然用了50秒。调试发现
每增加一条记录,所用的时间成10倍增加。
仔细跟踪源代码才发现,是Markup频繁内存分配造成的,每动一下就要把原来的内存释放,然后重建内存。
本来想改造一下,工作量大了点,而且Markup本身就是用连续字符串来存储数据的,就算改造也不见得会有什么改观。
tinyxml:
实在没办法了,听说这个不错,拿过来看了看源代码,它的数据是使用树存储的增加数据也不会重建内存,但一看到到处 const char*,晕过去了。
竟然不支持UNICODE,从它的文档中看到,虽然支持UNICODE文件读写,但其代码接口只能使用多字节!!
MSXML:
最后,只有选择这个了,用起来非常的痛苦。主要是数据类型的转换,因为MSXML是基于COM的。
看来等这个项目过后,要自己动手写一个真正简单实用,而效率也不是太低的XML库。
------解决方案--------------------
还有boost xml
------解决方案--------------------
偶现在用tinyxml
------解决方案--------------------
MS XML~
------解决方案--------------------
封装一下ms的即可
遇到xslt+xml还是ms强
------解决方案--------------------
Apache的,http://xerces.apache.org/xerces-c/,这个支持DOM也支持SAX/SAX2,如果你追求性能,用SAX/SAX2,因为是流式的,不需要建立DOM树,效率高。
因为你用的是MySQL,数据量应该不大,这个:http://multi-crash.com/?page_id=161
应该也不错,编码支持很多,性能也比TinyXML高。
------解决方案--------------------
SlimXml
RapidXml
------解决方案--------------------
Markup效率竟然有这么差,一直在用这个居然没有发现
------解决方案--------------------
pugixml,速度上可能是目前数一数二的xml库,小巧,完整源码只有3个文件,支持Unicode,支持XPath,
主页:http://pugixml.org/
官方有个性能比较:http://pugixml.org/benchmark/
------解决方案--------------------
CMarkup
------解决方案--------------------
expat,libxml都行啊
------解决方案--------------------
// pugixml,效率一流,就是类名之类的长了点,好处是可以望文生义。
// MSXML,效率还行。
// Markup对MSXML的封装库,可以兼容Markup
------解决方案--------------------
这个帖子 要 留名哈
含金量不错
------解决方案--------------------
Markup 用用的,100记录就这么夸张了还真没试过,就是十几二十条的记录在用
------解决方案--------------------
jff
------解决方案--------------------
------解决方案--------------------
长见识了。只用markup解析一下配置文件的路过。
------解决方案--------------------
一样啊,支持配置文件的解析
------解决方案--------------------
libxml2
------解决方案--------------------
长见识了
------解决方案--------------------
C++ POCO库里的XML库。http://pocoproject.org/
------解决方案--------------------
tinyxml就符合你的要求
unicode你不会转一下啊
转成UTF-8写到xml里
读出来显示的话再从UTF-8转回来
------解决方案--------------------
unicode 和char 可以转换下用TINYXML。开源的,完全可以自己修改,定制。
------解决方案--------------------