xml..果然是不错的东西.. 现在需要一个cross-platform 的xml parser. 目前survey到的有以下几种, 记录下先:
1. tinyxml:
http://www.grinninglizard.com/tinyxml/
这个东西很小巧, 要用的话只要include 2个头文件, link到一个lib. 可是缺少字符集支持, 除了ansi, 只有utf-8. 没什么特别需要应该够用了.
2. expat:
http://expat.sourceforge.net/
额.. 评价低.. 用的是sax的要register handler的做法, 而且看了sample之后发现, 那个代码写的恶心得要死, 不想看.
3. xerces-c:
http://xerces.apache.org/
apache的项目, 呵呵, 代码质量还是很高的.
应该是exrces-j的java port. 用java的话我们import一堆东西很正常, 反正eclipse会帮我们自动搞定. 然而c/c++的话, 就对应成了include, 很是麻烦.
到是支持很多的字符集, 联ibm-xxx字符集都有, orz... 可是跟java比较起来, 实现非常的诡异(java只要getBytes, 然后重新new 一个string就可以了).
唉..只要就是麻烦.
4. libxml2:
http://xmlsoft.org/
gnome下的项目, 被port到了win32下. 其实我觉得这个是最好的选择.
还没认真看过, 不过看了下dll的依赖性, 大概猜测了一下:
这个东西把encoding的问题全部交给libiconv来处理, 而整个lib只负责xml的parse. libiconv是个好东西啊, 不像win32下只能用WideCharToMultiByte等几个有限的函数转有限的几个encoding.
这个东西似乎build起来有点小麻烦, 好在有人专干这个: http://www.zlatkovic.com/pub/libxml/
以上です.



