第1步:2個(gè)頭文件,4個(gè)源文件,添加到當(dāng)前工程
第2步:會(huì)報(bào)錯(cuò),正?,F(xiàn)象,直接在4個(gè)源文件中添加#include "stdafx.h"(這個(gè)應(yīng)該會(huì)添吧),錯(cuò)誤解決
---------------------------------------------------------------------------
正在編譯...
stdafx.cpp
正在編譯...
tinyxmlparser.cpp
e:\xml解析\tinyxmltest\tinyxmlparser.cpp(36) : warning C4005: “TIXML_LOG” : 宏重定義
e:\xml解析\tinyxmltest\tinyxmlparser.cpp(34) : 參見(jiàn)“TIXML_LOG”的前一個(gè)定義
e:\xml解析\tinyxmltest\tinyxmlparser.cpp(1639) : fatal error C1010: 在查找預(yù)編譯頭指令時(shí)遇到意外的文件結(jié)尾
tinyxmlerror.cpp
e:\xml解析\tinyxmltest\tinyxmlerror.cpp(54) : fatal error C1010: 在查找預(yù)編譯頭指令時(shí)遇到意外的文件結(jié)尾
tinyxml.cpp
e:\xml解析\tinyxmltest\tinyxml.cpp(1889) : fatal error C1010: 在查找預(yù)編譯頭指令時(shí)遇到意外的文件結(jié)尾
tinystr.cpp
e:\xml解析\tinyxmltest\tinystr.cpp(117) : fatal error C1010: 在查找預(yù)編譯頭指令時(shí)遇到意外的文件結(jié)尾
tinyxmltest.cpp
正在生成代碼...
---------------------------------------------------------------------------
第3步:添加1個(gè)頭文件#include "tinyxml.h",即可運(yùn)行.給誰(shuí)用?工程誰(shuí)用給誰(shuí)
一般是入口點(diǎn)main那個(gè)源文件用// tinyxmltest.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。
第4步:照抄了,復(fù)制粘貼即可,運(yùn)行就可看到源文件夾中生成了一個(gè)test.xml文件.代碼已貼到下面
---------------------------------------源代碼--------------------------------------------
// tinyxmltest.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。
//
#include "stdafx.h"
#include "tinyxml.h"
#include <iostream>
using namespace std;
int WriteXML() ;
int _tmain(int argc, _TCHAR* argv[])
{
cout << "開(kāi)始測(cè)試!" <<endl;
WriteXML() ;
cout << "結(jié)束測(cè)試!" << endl ;
return 0;
}
int WriteXML()
{
//表示整個(gè)XML文檔,不對(duì)應(yīng)其中某個(gè)特定的節(jié)點(diǎn)
TiXmlDocument xmlDoc( "test.xml" ); // 建立一個(gè)XML文件
//表示聲明
TiXmlDeclaration Declaration( "1.0","gb2312", "yes" ); // 聲明XML的屬性
xmlDoc.InsertEndChild( Declaration ); // 寫入基本的XML頭結(jié)構(gòu)
//表示一個(gè)節(jié)點(diǎn),包含節(jié)點(diǎn)的一般方法,如訪問(wèn)自節(jié)點(diǎn)、兄弟節(jié)點(diǎn)、編輯自身、編輯子節(jié)電
TiXmlNode * pNode = NULL;
//表示元素節(jié)點(diǎn),可以包含子節(jié)點(diǎn)和TiXmlAttribute
TiXmlElement* pRootElm = NULL;
TiXmlElement* pChildeElm = NULL;
TiXmlElement* pItemElm = NULL;
//表示文本節(jié)點(diǎn)
TiXmlText* pText = NULL; // 一個(gè)指向Text的指針
pText = new TiXmlText("good") ;//給一個(gè)文本節(jié)點(diǎn)賦值
pRootElm = new TiXmlElement( "todo" ); //創(chuàng)建一個(gè)元素節(jié)點(diǎn)(這里做的是根元素節(jié)點(diǎn))
pNode = xmlDoc.InsertEndChild(*pRootElm) ;// 寫入XML文件的跟節(jié)點(diǎn)(xmlDocXML文件的根節(jié)點(diǎn))
pRootElm = pNode->ToElement() ;//設(shè)置當(dāng)前節(jié)點(diǎn)位置(即根節(jié)點(diǎn))
pChildeElm = new TiXmlElement("child1") ; //創(chuàng)建一個(gè)元素節(jié)點(diǎn)(這里是前面創(chuàng)建的節(jié)點(diǎn)的子節(jié)點(diǎn))
pChildeElm->SetAttribute("num", 9) ;//設(shè)置這個(gè)元素的屬性為9
pNode = pRootElm->InsertEndChild(*pChildeElm) ;// 寫入XML元素節(jié)點(diǎn)并返回插入后節(jié)點(diǎn)(pRootElm的子節(jié)點(diǎn),即根節(jié)點(diǎn)的子節(jié)點(diǎn))
TiXmlElement* pChildeElm1 = NULL; //創(chuàng)建一個(gè)新元素節(jié)點(diǎn),這里的節(jié)點(diǎn)做跟元素的新節(jié)點(diǎn)
pChildeElm1 = pNode->ToElement() ;//設(shè)置到剛才剛剛插入的節(jié)點(diǎn)位置
pChildeElm1->InsertEndChild(*pText) ;//插入文本
delete pChildeElm ;
pChildeElm = NULL ;
pChildeElm = new TiXmlElement("child2") ;
pChildeElm->SetAttribute("num", 10) ;
//將新建立的節(jié)點(diǎn)插入到上面節(jié)點(diǎn)之前
pNode = pRootElm->InsertBeforeChild (pChildeElm1, *pChildeElm) ;
//設(shè)置第二個(gè)節(jié)點(diǎn)的值
TiXmlElement* pChildeElm2 = NULL;
pChildeElm2 = pNode->ToElement() ;
pChildeElm2->InsertEndChild(*pText) ;
xmlDoc.Print() ;
xmlDoc.SaveFile(); // 把XML文件寫入硬盤
return 0 ;
}
-----------------------------------------------------
附注1:代碼已上傳至郵箱,即取即用,注:tinyxml那2個(gè)頭文件與4個(gè)源文件已一起上傳了
附注2:此文僅為tinyxml入門教程1---怎樣使用,后續(xù)還會(huì)擴(kuò)展其使用方法