代码改变世界

C++中XML的解析之TinyXML

2009-03-30 22:07  libiver  阅读(224)  评论(0编辑  收藏  举报

声明:欢迎任何人和组织转载本blog中文章,但必须标记文章原始链接和作者信息。

本文链接:http://blog.csdn.net/li_007/archive/2009/03/30/4037213.aspx

开拓进取的小乌龟------->CSDN点滴点点滴滴Blog

前段时间需要用C++写一个读写解析XML的控制台程序,想想自己写,是不可能的,为了这么点事情,所以就去找Opensourece的东东了,google一下发现了很多的使用Parser XML的库,最后具体了解了下TinyXML和Xerces这俩个有名的Lib了,Xerces是IBM贡献的一个重量级的库,而TinyXML则是一个很小的XML解析的库,正适合我的需要,也就选择了TinyXML,但是需要说明的是TinyXML是没有验证功能的,这样需要自己多很多的验证来保证XML的正确性,增加Programer工作量,但是对付一些Configuration File之类的使用来说足以,并且是简单容易上手的,他总共也就那么点代码,大概6000行代码,很方便地以静态库的形式为我们服务。

在TinyXML中大概有以下的一些类,它的Inheritance Diagram如下:

TinyXML Inheritance Diagram

很简单吧,也就那么几个类,各个类的作用如下图:

TinyXML Class List

 

在这里啰嗦下,TinyXML是基于DOM的,所以是将所有的数据都存放在内存中,这样方便读写,也不方便像TiXmlPrinter这样功能的实现,而不是想SAX那样产生数据就发送一个Event来实现操作。