现在的位置: 首页 > 综合 > 正文

xml c++操作

2013年08月23日 ⁄ 综合 ⁄ 共 909字 ⁄ 字号 评论关闭

【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 

抱歉!评论已关闭.