这两天做技术调研, 其中分析了两种XML解析器: expat和libxml2.
expat是用c编写的一个xml解析库.它是较快的, 许多语言(包括 Perl、Python、Scheme 及至少 20 种其它语言)都可以与这个用 C 编码的库绑定。主页请见: http://expat.sourceforge.net/
libxml2 是 GNOME 项目的一部分, 具有很大的灵活性,是用出色的可移植的 C 编写的,并能够获得卓越的性能。在我编译php时,xml的选择就是libxml2. 主页请见: http://www.xmlsoft.org/
我们大部分需要xml解析的项目使用libxml2, 速度上还是不错的. 部分项目选择了expat, 为什么不统一, 是技术上考虑?还是程序员的喜好? 还没时间去分析.
为什么解析xml不用java或C#来做,他们不是很简单么? 这是一个蠢问题.项目的客户或者其它原因要求这个项目后台程序使用C/C++来开发,不可能去用java或者其它语言的xml解析库. (因为上次分析gSoap时,有网友说为什么不用.net来开发webservice)
所以在unix/linux上开发C/c++程序, 要使用xml解析的话, 建议使用开源的libxml2.