VS2010中使用TinyXML

来源:互联网 发布:mac os 优化 编辑:程序博客网 时间:2024/06/05 15:13

什么是XML

可扩展标记语言,标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言。
它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。

使用TINYXML

下载地址:http://sourceforge.net/projects/tinyxml/
下载解压后可以用VS2010默认打开,可以看到作者已经为我们写好了相关的demo,里面写的很具体,有时间的话可以好好学习下,这里我主要介绍怎么简单的使用tinyxml。
解压后拷贝如下6个文件到您的项目文件下:

tinyxml.cpp,

tinyxml.h,

tinyxmlerror.cpp,

tinyxmlparser.cpp,

tinystr.cpp,

tinystr.h

要配合VS2010使用,我们还要做一些简单的操作,在上面拷贝的CPP文件中,加入#include "stdafx"(做到这一步我们就可以编译看看是否有错误,我编译的时候有点小问题,把#include "stdafx"放到包含对应头文件的前面就好了,不知道怎么回事)。
然后在我们要调用tinyxml类的文件中包含tinyxml.h tinystr.h两个头文件就可以了。

相关文档

在线手册is here:http://www.grinninglizard.com/tinyxmldocs/tutorial0.html

 

tinyXML类结构

http://www.grinninglizard.com/tinyxmldocs/index.html


TinyXML集合的类结构继承关系

可先大致瞄一眼被命名为TinyXML的类结构,供以后不时之需。

 

[2]类作用

调用这些类的成员函数就就可以创建指定名的XML文件,在XML文件中生成结点,然后指定每个结点的属性,所以根据上图的类结构简单的描述一下每个类的大体作用。

                     类名 描述 TiXmlBase: TinyXML中的基类,它的功能很少,只包含打印功能和一些工具函数。主要的结点类型还在文档和声明类中。 TiXmlAttribute: 继承于TiXmlBase类,实现名“字-值”对。 TiXmlNode 是整个XML文档对象的父类。文档、声明类及其它类都是结点。 TiXmlComment 用于在XML文件中的注释。  TiXmlDeclaration  XML文件中的第一行内容由此类指定。 TiXmlDocument:  时常是XML的第一个结点。它可以绑定XMLL中的其它结点,它可以被保存、载入及被打印到屏幕之上。一个文档类的值就是XML的文件名。 TiXmlElement:  这是一个容器类。它包含值、元素名,还可以包含其它的元素、文本、注释及其它内容。一个元素对象内可以包含任意个其它的元素。 TiXmlText:  用来实现在XML文件中的文本。 TiXmlUnknown  实现收集XML不认识的东西。 

 

3 使用TinyXML

void CMVHDlg::createXML(){TiXmlDocument *pDoc = new TiXmlDocument;if(!pDoc)return;TiXmlDeclaration *pDec = new TiXmlDeclaration("1.0", "UTF-8", "");if(!pDec)return;pDoc->LinkEndChild(pDec);TiXmlElement *pNoderoot = new TiXmlElement("config");if(!pNoderoot)return;TiXmlElement *pNode1 = new TiXmlElement("name");
TiXmlText *text1 = new TiXmlText("jamy");pNode1->LinkEndChild(text1);pNode1->SetAttribute("country", "china");pNoderoot->LinkEndChild(pNode1);pDoc->LinkEndChild(pNoderoot);pDoc->SaveFile("jamy.xml");}

最后生成的xml文档如下:

<?xml version="1.0" encoding="UTF-8" ?><config>    <name conoury="china">jamy</name></config>
这里只是简单的介绍怎样在VS2010中使用tinyxml,第一次写这个,当然有很多是百度的啦,不喜勿喷噢~~~~


0 0
原创粉丝点击