TinyXml2 的使用

晚上研究了下 TinyXml-2,因为马上要用到它。网上搜了一些资料后,感觉很少有比较实用的描述。所以写这篇文章只为总结下 TinyXml-2 从编译到一个非常简单的样例运行。

编译及使用

我用的是 TinyXml-2.6.2,下载地址:http://sourceforge.net/projects/tinyxml/,下载以后,其默认是用 VS2010 打开的。如图:

2014-09-07_215424

可以看到,总共有四个项目,其中下面两个是无用的,如其名字所述(…Test…),仅仅为了测试。上面两个项目编译出来的区别就是是否支持STL。选择“生成->批生成->全选->生成”,如此会对这四个项目全部生成(Release版和Debug版都有)。生成时,可能会有报错,不过放心,仔细看的话会发现全部都是 xmltest.cpp 这个文件中的错误,你用不到它,无需关心。

有些人可能会问,没有 VS2010 怎么办?很简单,比 2010 版本高的,打开时 直接 update 即可。比 2010 低的版本 稍微麻烦点。我以 VS2008 为例。新建一个 Win32 控制台应用程序,在应用向导中选择 空项目+静态库,将如图中的6个文件添加到项目中。

2

编译时会报“fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include “stdafx.h””?”,很简单,按照提示,在对应的文件一一加上即可,重新编译生成,即可得到 .lib 文件。

那我们如何在项目中如何使用 TinyXml-2 呢?我尝试且成功了两种方法是:一种方法是将上图中的两个 .h 文件(主要是tinyxml.h)和生成的 .lib 文件复制到你的工程目录(和其他 .cpp 文件在一起),将头文件添加到项目,在需要使用TinyXml-2 的地方包含这两个头文件并链接库文件(添加如下代码):

另一种方法就是不用生成的库,直接把上图中的六个文件复制并添加到项目中,也可以。

例程

下面再奉上我看到的一个相当简单的例子,可以向你展示 TinyXml-2 中很简单的一些操作。让你很快对其能有所认识。

运行结果:

3

是不是很好理解?!^^

TinyXml-2 的结构(引自自带文档)

classTiXmlBase
TiXmlBase 是所有类的基类,TiXmlNode、TiXmlAttribute两个类都继承来自 TiXmlBase 类,其中 TiXmlNode 类指的是所有被<…>…<…/>包括的内容,而xml中的节点又具体分为以下几方面内容,分别是声明、注释、节点以及节点间的文本,因此在 TiXmlNode 的基础上又衍生出这几个类 TiXmlComment、TiXmlDeclaration、TiXmlDocument、TiXmlElement、TiXmlText、TiXmlUnknown,分别用来指明具体是 xml 中的哪一部分。TiXmlAttribute 类不同于 TiXmlNode,它指的是在尖括号里面的内容,像<… ***=…>,其中***就是一个属性。这块我具体用一个xml文档说明一下,内容如下:

Xml代码:

TiXmlDeclaration 指的是<?xml version=”1.0″ encoding=”UTF-8″?>,

TiXmlComment 指的是<!–one item behalfs one contacted person.–>、 <!–more contacted persons.–>,

TiXmlDocument 指的是整个xml文档,

TiXmlElement 指的是<phonebook>、<item>、<name>、<addr>等等这些节点,

TiXmlText 指的是‘gougou’、‘15840330481’这些夹在<item>与</item>、<name>与</name>、<addr>与</addr>之间的文本文字,

TiXmlAttribute 指的是<?xml version=”1.0″ encoding=”UTF-8″?>节点中version、encoding,

除此之外就是 TiXmlUnknown。

原文地址:https://www.cnblogs.com/lpxblog/p/5643586.html