头文件
#ifndef READWRITEXML_H
#define READWRITEXML_H
#pragma warning(disable : 4786)
#include "tinyxml.h"
#include <map>
#include <list>
using namespace std;
enum ERRCODE{
ERR_PARAMER_NULL,
ERR_FIND_NULL,
ERR_NO_SON,
ERR_NO_ROOT,
ERR_NODE_EXIST,
ERR_SUECESS,
};
class CReadWriteXml
{
public:
//构造函数
CReadWriteXml();
// 析构函数
virtual ~CReadWriteXml();
//初始化函数
bool Init();
//读取指定类型的所有标签
ERRCODE ReadAllElement(const char* nType, map<string, string> &OutMap);
//读取指定标签的子节点
bool ReadSubElement(const char* nType, const char *pTagetStr,const char * pSourceStr,list<string> &OutList);
//添加节点
bool WriteElement(const char* nType, const char *pTagetStr,const char * pSourceStr );
//添加子节点
bool WriteSubElement(const char* nType, const char *pTagetStr,const char * pSourceStr, const char * pText);
//删除指定的节点
void DeleteElement(const char* nType, const char *pTagetStr,const char * pSourceStr);
//删除子节点
bool CReadWriteXml::DeleteSubElement(const char* nType, const char *pTagetStr,const char * pSourceStr,const char * pText);
//查找xml中是否有该节点
TiXmlElement* FindElement(const char* nType, const char *pTagetStr,const char * pSourceStr);
//成员变量
TiXmlDocument m_ReadWriteXml;
public:
//存储ini子节点的list
list<string> m_IniList;
};
#endif
资源文件
#include "ReadWriteXml.h"
#include "tinyxml.h"
#include <string>
#include <iostream>
using namespace std;
#define INI_TARGETFILE "targetfile" //目标文件
#define INI_SOURCEFILE "sourcefile" //比较文件
#define INIT_XMLPATH "E:\\各类学习工程