分享

tinyxml入门教程1

 李林侠图书馆 2012-03-21
tinyxml入门教程1---怎样使用?
2010年10月29日 星期五 上午 9:01

第1步:2个头文件,4个源文件,添加到当前工程
第2步:会报错,正常现象,直接在4个源文件中添加#include "stdafx.h"(这个应该会添吧),错误解决
---------------------------------------------------------------------------
正在编译...
stdafx.cpp
正在编译...
tinyxmlparser.cpp
e:\xml解析\tinyxmltest\tinyxmlparser.cpp(36) : warning C4005: “TIXML_LOG” : 宏重定义
        e:\xml解析\tinyxmltest\tinyxmlparser.cpp(34) : 参见“TIXML_LOG”的前一个定义
e:\xml解析\tinyxmltest\tinyxmlparser.cpp(1639) : fatal error C1010: 在查找预编译头指令时遇到意外的文件结尾
tinyxmlerror.cpp
e:\xml解析\tinyxmltest\tinyxmlerror.cpp(54) : fatal error C1010: 在查找预编译头指令时遇到意外的文件结尾
tinyxml.cpp
e:\xml解析\tinyxmltest\tinyxml.cpp(1889) : fatal error C1010: 在查找预编译头指令时遇到意外的文件结尾
tinystr.cpp
e:\xml解析\tinyxmltest\tinystr.cpp(117) : fatal error C1010: 在查找预编译头指令时遇到意外的文件结尾
tinyxmltest.cpp
正在生成代码...

---------------------------------------------------------------------------
第3步:添加1个头文件#include "tinyxml.h",即可运行.给谁用?工程谁用给谁
一般是入口点main那个源文件用// tinyxmltest.cpp : 定义控制台应用程序的入口点。

第4步:照抄了,复制粘贴即可,运行就可看到源文件夹中生成了一个test.xml文件.代码已贴到下面


---------------------------------------源代码--------------------------------------------

// tinyxmltest.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "tinyxml.h"
#include <iostream>
using namespace std;


int WriteXML() ;
int _tmain(int argc, _TCHAR* argv[])
{
cout << "开始测试!" <<endl;
WriteXML() ;
cout << "结束测试!" << endl ;
return 0;
}

int WriteXML()
{
//表示整个XML文档,不对应其中某个特定的节点
TiXmlDocument xmlDoc( "test.xml" ); // 建立一个XML文件

//表示声明
TiXmlDeclaration Declaration( "1.0","gb2312", "yes" ); // 声明XML的属性

xmlDoc.InsertEndChild( Declaration ); // 写入基本的XML头结构

//表示一个节点,包含节点的一般方法,如访问自节点、兄弟节点、编辑自身、编辑子节电
TiXmlNode * pNode = NULL;

//表示元素节点,可以包含子节点和TiXmlAttribute
TiXmlElement* pRootElm = NULL;
TiXmlElement* pChildeElm = NULL;
TiXmlElement* pItemElm = NULL;

//表示文本节点
TiXmlText* pText = NULL; // 一个指向Text的指针

pText = new TiXmlText("good") ;//给一个文本节点赋值

pRootElm = new TiXmlElement( "todo" ); //创建一个元素节点(这里做的是根元素节点)

pNode = xmlDoc.InsertEndChild(*pRootElm) ;// 写入XML文件的跟节点(xmlDocXML文件的根节点)
pRootElm = pNode->ToElement() ;//设置当前节点位置(即根节点)

pChildeElm = new TiXmlElement("child1") ; //创建一个元素节点(这里是前面创建的节点的子节点)
pChildeElm->SetAttribute("num", 9) ;//设置这个元素的属性为9

pNode = pRootElm->InsertEndChild(*pChildeElm) ;// 写入XML元素节点并返回插入后节点(pRootElm的子节点,即根节点的子节点)

TiXmlElement* pChildeElm1 = NULL; //创建一个新元素节点,这里的节点做跟元素的新节点
pChildeElm1 = pNode->ToElement() ;//设置到刚才刚刚插入的节点位置
pChildeElm1->InsertEndChild(*pText) ;//插入文本

delete pChildeElm ;
pChildeElm = NULL ;
pChildeElm = new TiXmlElement("child2") ;
pChildeElm->SetAttribute("num", 10) ;

//将新建立的节点插入到上面节点之前
pNode = pRootElm->InsertBeforeChild (pChildeElm1, *pChildeElm) ;
//设置第二个节点的值
TiXmlElement* pChildeElm2 = NULL;
pChildeElm2 = pNode->ToElement() ;
pChildeElm2->InsertEndChild(*pText) ;


xmlDoc.Print() ;

xmlDoc.SaveFile(); // 把XML文件写入硬盘

return 0 ;
}

-----------------------------------------------------

附注1:代码已上传至邮箱,即取即用,注:tinyxml那2个头文件与4个源文件已一起上传了

附注2:此文仅为tinyxml入门教程1---怎样使用,后续还会扩展其使用方法

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多