XML操作动态库
/******************************************************************************/<br><br>/* 开发者:元杰(夏祥均)*/<br><br>/* 开发时间:2007-08-08 */<br><br>/******************************************************************************/<br><br>#pragma once<br><br>#import <msxml2.dll><br><br># include <afxtempl.h><br><br>#include <stdarg.h><br><br> <br><br>#ifdef XML_DLL<br><br>#define DLL_API _declspec(dllexport)<br><br>#else<br><br>#define DLL_API _declspec(dllimport)<br><br>#endif<br><br>//******************************<br><br>//属性结构体<br><br>typedef struct {<br><br> CString Name;<br><br> CString Text;<br><br>}ATTRIBUTE;<br><br> <br><br>//******************************<br><br>//类<br><br>//AFX_CLASS_EXPORT<br><br> <br><br>extern "C" class DLL_API CMyXML<br><br>{<br><br>//******************************<br><br>//私有属性<br><br>private: <br><br> MSXML2::IXMLDOMDocument2Ptr m_XmlDoc; //xml对象<br><br> _bstr_t m_error; //错误对象<br><br> int m_code; //错误代码见下<br><br> bool m_isXmlDocInited;<br><br> bool m_isFileLoad; //文件是否载入<br><br> bool m_isControl; //xml对象是否可操作<br><br> CString m_xmlFileName; //文件<br><br> <br><br>//******************************<br><br>//私有操作<br><br>private: <br><br> void InitClass(); //初始化类<br><br> bool SaveXML(); //保存文档<br><br>//******************************<br><br>//公有属性<br><br>public: <br><br> CStringArray m_NodeElements; //返回的NODE元素<br><br> CArray<ATTRIBUTE> m_NodeAttributes; //返回的属性元素<br><br>//******************************<br><br>//公有操作<br><br>public: <br><br> //类的基本操作<br><br> CMyXML(void);<br><br> CMyXML(CString fileName);<br><br> ~CMyXML(void);<br><br> <br><br> //返回错误<br><br> CString GetErrorMessage();<br><br> int GetErrorCode();<br><br> <br><br> //加载文件<br><br> bool LoadXmlFile(CString fileName);<br><br> CString GetXmlFileName();<br><br> //读取节点<br><br> CString GetSingleNode(CString url, CString defaultString = ""); //url为节路径,defaultString为找不到时的默认值<br><br> bool GetNodes(CString url, CStringArray *reStrs = NULL); //得到多个NODE元素值,返回值保存在m_NodeElements成员中和reStrs中<br><br> CString GetNodeAttribute(CString url, CString attribute, CString defaultString = "");//url为节路径,attribute为要获取的属性,defaultString为找不到时的默认值<br><br> bool GetNodeAttributes(CString url, CArray<ATTRIBUTE> *reStrs = NULL);//得到url的多个属性值,返回值在成员m_NodeAttributes中和reStrs中<br><br> //添加节点<br><br> bool AddSingleNode(CString parent, CString node, CString text = "", CString atts = "", ...);//添加NODE:其中atts的格式为"name=%s[;name=%s]"每一个%s对应一个CString字符串<br><br> bool SetNodeAttributes(CString url, CString atts, ...);//其中atts的格式为"name=%s[;name=%s]"每一个%s对应一个CString字符串<br><br> //删除节点<br><br> bool DeleteNodes(CString url, CString condition = "", ...);//condition为条件:其中condition的格式为"name=%s[;name=%s]"每一个%s对应一个CString字符串(如果name为"TEXT",则对应的%s参数为值)<br><br> bool AlterSingleNode(CString url, CString text, CString condition = "", ...);//condition为条件:其中condition的格式为"name=%s[;name=%s]"每一个%s对应一个CString字符串<br><br>};<br><br>//*****************************************************************************<br><br>//错误代码表<br><br>//0:没有错误1:初始化对象失败2:没有加载文件3:找不到指定文件4:XML文档错误<br><br>//5:节点在存在6:属性不存在7:添加节点失败8:添加属性失败9:保存文档失败<br><br>//10:删除节点失败11:读取参娄失败12:修改结点失败<br><br>//******************************************************************************<br><br>
- 1
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- javaweb毕业设计-java作业管理系统设计(源代码+lw)(可做课程设计).rar
- 我的自己111111111
- 判断一个数是否为质数以及通过C语言实现.docx
- IPv4-HEADER-03 测试数据
- 高级网络人才培训专家-X00070005 第32章 ISDN和DCC
- 高级网络人才培训专家-X00070004 第31章 配置帧中继
- IPv4-HEADER-02测试数据
- tensorflow-2.6.2-cp38-cp38-manylinux2010-x86-64.whl
- tensorflow-2.6.2-cp37-cp37m-win-amd64.whl
- RV180-Firmware-1.0.5.4.img