读好书,交益友
分类: C/C++
2014-01-14 11:01:40
最近又要用c++解析xml文件了,其实需求相当简单
1 必须linux下使用
2 支持c++调用
3 支持DOM,支持xpath,最好能够验证文档
4 能够生成xml文件
5 支持utf8
6 最好是源码联入
基于第一点,msxml被T除。
基于第三点,TinyXML被T除,虽然可以使用TinyXPath,但TinyXPath和TinyXML兼容性不好。boost的property_tree不支持xpath被T除,rapidxml被剔除。
基于第五点,TinyXML不支持unicode,xerces编码支持utf16,这两个被剔除。
基于第六点,libxml2被T除,xerces本身不支持xpath需要xalan,而且xerces的库太大。
对于Expat 最近的版本是0.7.1,已经5年没有更新,出了bug恐怕得自己修改,看了一下chrome 还在用。
目前只有PugiXML,他的速度比rapidxml稍慢,缺少xml验证,dtd处理,xml名称空间的支持。