XML操作动态库

时间:2010-08-28 16:06:12
【文件属性】:
文件名称:XML操作动态库
文件大小:20KB
文件格式:RAR
更新时间:2010-08-28 16:06:12
XML操作动态库 /******************************************************************************/

/* 开发者:元杰(夏祥均)*/

/* 开发时间:2007-08-08 */

/******************************************************************************/

#pragma once

#import

# include

#include



#ifdef XML_DLL

#define DLL_API _declspec(dllexport)

#else

#define DLL_API _declspec(dllimport)

#endif

//******************************

//属性结构体

typedef struct {

CString Name;

CString Text;

}ATTRIBUTE;



//******************************

//类

//AFX_CLASS_EXPORT



extern "C" class DLL_API CMyXML

{

//******************************

//私有属性

private:

MSXML2::IXMLDOMDocument2Ptr m_XmlDoc; //xml对象

_bstr_t m_error; //错误对象

int m_code; //错误代码见下

bool m_isXmlDocInited;

bool m_isFileLoad; //文件是否载入

bool m_isControl; //xml对象是否可操作

CString m_xmlFileName; //文件



//******************************

//私有操作

private:

void InitClass(); //初始化类

bool SaveXML(); //保存文档

//******************************

//公有属性

public:

CStringArray m_NodeElements; //返回的NODE元素

CArray m_NodeAttributes; //返回的属性元素

//******************************

//公有操作

public:

//类的基本操作

CMyXML(void);

CMyXML(CString fileName);

~CMyXML(void);



//返回错误

CString GetErrorMessage();

int GetErrorCode();



//加载文件

bool LoadXmlFile(CString fileName);

CString GetXmlFileName();

//读取节点

CString GetSingleNode(CString url, CString defaultString = ""); //url为节路径,defaultString为找不到时的默认值

bool GetNodes(CString url, CStringArray *reStrs = NULL); //得到多个NODE元素值,返回值保存在m_NodeElements成员中和reStrs中

CString GetNodeAttribute(CString url, CString attribute, CString defaultString = "");//url为节路径,attribute为要获取的属性,defaultString为找不到时的默认值

bool GetNodeAttributes(CString url, CArray *reStrs = NULL);//得到url的多个属性值,返回值在成员m_NodeAttributes中和reStrs中

//添加节点

bool AddSingleNode(CString parent, CString node, CString text = "", CString atts = "", ...);//添加NODE:其中atts的格式为"name=%s[;name=%s]"每一个%s对应一个CString字符串

bool SetNodeAttributes(CString url, CString atts, ...);//其中atts的格式为"name=%s[;name=%s]"每一个%s对应一个CString字符串

//删除节点

bool DeleteNodes(CString url, CString condition = "", ...);//condition为条件:其中condition的格式为"name=%s[;name=%s]"每一个%s对应一个CString字符串(如果name为"TEXT",则对应的%s参数为值)

bool AlterSingleNode(CString url, CString text, CString condition = "", ...);//condition为条件:其中condition的格式为"name=%s[;name=%s]"每一个%s对应一个CString字符串

};

//*****************************************************************************

//错误代码表

//0:没有错误1:初始化对象失败2:没有加载文件3:找不到指定文件4:XML文档错误

//5:节点在存在6:属性不存在7:添加节点失败8:添加属性失败9:保存文档失败

//10:删除节点失败11:读取参娄失败12:修改结点失败

//******************************************************************************


【文件预览】:
MyXML.h
CXMLControl.lib
CXMLControl.dll

网友评论