【IT168 技术文档】或许你看到这个标题会感到非常的惊讶,因为截至到现在,恐怕是没有多少人没有使用过XML文档了吧。
不过如果你是一个VC6或者是VC7中native code的使用者的话,我想您或许会产生一些兴趣。
在MFC中没有提供对XML的操作的类,如果是忠实的COM支持者的话,可以选择使用微软的MSXML DOM 来操作一个xml文件。
如果是开源,又或者是对跨平台的支持的话,您可以选择使用WFC,XML4C 当然还有apache 的著名的Xerces C++ 来操作,使用这些类库基本上都可以比较简单方便高效的实现对xml文件的读写。并且都支持XML 的最新标准。
不过,不要忘记一件事情,需要使用VC来读写XML文件的基本上都是一些配置文件,比如Visual Studio .net 的工程文件,这样的文件的大小一般都会限制在一定的容量以内。如果我们采用上面的任何一个方法,都需要下载几M甚至10几M的库文件。真的是有些不合算。
感谢sourceforge,感谢google 给我们提供了足够多的资源来简化我们的开发,在这里我给大家介绍一个短小精悍的XML parse class----TinyXml,tinyXml 不光短小,效率也是很高,而且使用这个class 可以很快地定位 我们需要在Xml中定位的Node。它提供了一个叫做 TiXmlNode* FirstChild ( const std::string& _value ) 的方法,以最简单的方式开始我们对 Xml 文件节点的读写。
经过实践,发现这个class 读写xml 的速度也还是很不错的,要是说缺点,就是对Unicode的支持还有一些bug。比如说下面的xml 标签的解释就有bug
<Filter Name="程序" Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx">
但是如果你改成
<Filter Name="程序file" Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx">
的话,就可以了。 1 http://www.jclark.com/xml/expat.html