您好,欢迎光临本网站![请登录][注册会员]  
文件名称: 跨平台解析XML文件 XmlNode V1.01测试版
  所属分类: C++
  开发工具:
  文件大小: 46kb
  下载次数: 0
  上传时间: 2013-12-27
  提 供 者: sdiwe*****
 详细说明: //XmlNode.h //版本:V1.01测试版 //为帮助作者完善XmlNode,希望大家讲错误发送给作者,以完善其功能 #ifndef XML_NODE_H #define XML_NODE_H #define XML_OBJECT_TYPE_ERROR 0x00 //节点类型错误 #define XML_OBJECT_TYPE_DOCUMENT 0x01 //节点类型为文档,即为xml根节点,用于记录文件路径 #define XML_OBJECT_TYPE_DECLARATION 0x02 //节点类型为描述 #define XML_OBJECT_TYPE_ATTRIBUTE 0x03 //节点类型为属性 #define XML_OBJECT_TYPE_COMMENT 0x04 //节点类型为注释 #define XML_OBJECT_TYPE_CHAR_DATA 0x05 //节点类型为不被解析的字符数据 #define XML_OBJECT_TYPE_ELEMENT 0x06 //节点类型为子节点 #define XML_OBJE CT_TYPE_VALUE 0x07 //节点类型为值节点 #define XML_OBJECT_TYPE_MAX 0x07 //节点类型的最大值 #include #include using namespace std; class __declspec(dllexport)CXmlNode { protected: CXmlNode(); public: ~CXmlNode(); public: /*************************************************** Type: static public Explain: 获取作者信息 Return: 作者信息 ***************************************************/ static string GetAuthorInfo(); /*************************************************** Type: static public Explain: 获取版本信息 Return: 版本信息 ***************************************************/ static string GetVersionInfo(); /*************************************************** Type: static public Explain: 读取xml文件 Para: [in] sPath xml文件路径 Return: 根节点指针。 Mark: 当读取xml文件失败时,返回0 ***************************************************/ static CXmlNode * LoadFile(string sPath); /*************************************************** Type: public Explain: 保存Xml文件 Para: [in] sPath xml文件路径,当sPath为空时,将默认保存在上次读取时的路径中 Return: 保存文件是否成功。 Mark: 如果当前节点为根节点,则记录的xml文件路径将被替换 如果当前节点不是跟节点,只保存当前节点和其所有子节点。为保证xml文件格式正确,将自动在Xml中添加声明 ***************************************************/ bool SaveFile(string sPath); /*************************************************** Type: public Explain: 保存Xml文件 Return: 保存文件是否成功。 Mark: xml文件保存路径为已经设置的路径,默认为打开文件时的路径,也可以通过SetValue函数修改路径,详见SetValue函数说明 如果当前节点为根节点,则记录的xml文件路径将被替换 如果当前节点不是跟节点,只保存当前节点和其所有子节点。为保证xml文件格式正确,将自动在Xml中添加声明 ***************************************************/ bool SaveFile(); /*************************************************** Type: public Explain: 获取节点名 Return: 节点名。 Mark: 当节点类型为XML_OBJECT_TYPE_DOCUMENT,节点名为#document; 当节点类型为XML_OBJECT_TYPE_DECLARATION,节点名为#xml 当节点类型为XML_OBJECT_TYPE_COMMENT,节点名为#comment 当节点类型为XML_OBJECT_TYPE_CHAR_DATA,节点名为#cdata ***************************************************/ string GetName(); /*************************************************** Type: public Explain: 设置节点 Para: [in] sName 节点名,不能为空 Return: true设置节点名成功,false设置节点名失败 Mark: 当节点类型为XML_OBJECT_TYPE_DOCUMENT、XML_OBJECT_TYPE_DECLARATION、 XML_OBJECT_TYPE_COMMENT或XML_OBJECT_TYPE_CHAR_DATA时,不允许修改节点名 ***************************************************/ bool SetName(string sName); /*************************************************** Type: public Explain: 获取节点值 Return: 节点值。 ***************************************************/ string GetValue(); /*************************************************** Type: public Explain: 设置节点值 Para: [in] sValue 节点值 Return: true成功,false失败。 Mark: 当节点类型为XML_OBJECT_TYPE_DECLARATION时,不允许设置节点值 当节点类型为XML_OBJECT_TYPE_DOCUMENT,设置的节点值即为文件路径 ***************************************************/ bool SetValue(string sValue); /*************************************************** Type: static public Explain: 创建根节点 Para: [in] sPath 文件保存路径,可以为空 Para: [in] sVersion 版本,默认为1.0 Para: [in] sEncoding 编码,默认为UTF-8 Return: 创建完成的根节点指针。 ***************************************************/ static CXmlNode * CreateRootNode(string sPath = "", string sVersion = "1.0", string sEncoding = "UTF-8"); /*************************************************** Type: public Explain: 给当前节点创建属性 Para: [in] sName 属性名,不可以为空 Para: [in] sValue 属性值,可以为空 Return: 创建完成的属性指针。 Mark: 如果当前存在相同属性名的属性,则返回与当前输入的属性名相同的属性节点 ***************************************************/ CXmlNode * CreateAttrNode(string sName, string sValue = ""); /*************************************************** Type: public Explain: 给当前节点创建子节点 Para: [in] sName 节点名,当节点类型为XML_OBJECT_TYPE_ELEMENT时,不能为空,其他类型可以为空 Para: [in] sValue 节点值,可以为空 Para: [in] nType 节点类型,默认为XML_OBJECT_TYPE_ELEMENT Return: 创建完成的子节点指针,当返回0时,表示创建子节点失败 Mark: 当前节点类型不是XML_OBJECT_TYPE_ELEMENT或XML_OBJECT_TYPE_DOCUMENT,不能创建子节点 输入的节点类型可以是XML_OBJECT_TYPE_COMMENT(注释类型)、XML_OBJECT_TYPE_CHAR_DATA(字符数据)或XML_OBJECT_TYPE_ELEMENT(子节点) ***************************************************/ CXmlNode * CreateSonNode(string sName = "", string sValue = "", unsigned int nType = XML_OBJECT_TYPE_ELEMENT); /*************************************************** Type: public Explain: 给当前节点创建兄弟节点 Para: [in] sName 节点名,当节点类型为XML_OBJECT_TYPE_ELEMENT时,不能为空,其他类型可以为空 Para: [in] sValue 节点值,可以为空 Para: [in] nType 节点类型,默认为XML_OBJECT_TYPE_ELEMENT Return: 创建完成的兄弟节点指针,当返回0时,表示创建兄弟节点失败 Mark: 当前节点的父节点类型不是XML_OBJECT_TYPE_ELEMENT或XML_OBJECT_TYPE_DOCUMENT,不能创建子节点 输入的节点类型可以是XML_OBJECT_TYPE_COMMENT(注释类型)、XML_OBJECT_TYPE_CHAR_DATA(字符数据)或XML_OBJECT_TYPE_ELEMENT(子节点) ***************************************************/ CXmlNode * CreateChildNode(string sName = "", string sValue = "", unsigned int nType = XML_OBJECT_TYPE_ELEMENT); /*************************************************** Type: static public Explain: 删除所有子节点和属性,包括当前节点。 Para: [in] pXmlNode 指定的需要被删除的节点指针 ***************************************************/ static void DeleteAll(CXmlNode *& pXmlNode); /*************************************************** Type: static public Explain: 删除所有子节点和属性,不包括当前节点。 Para: [in] pNode 当前节点的指针 ***************************************************/ static void DeleteAllSon(CXmlNode *& pXmlNode); /*************************************************** Type: static public Explain: 删除当前节点的所有属性。 Para: [in] pNode 当前节点的指针 ***************************************************/ static void DeleteAllAttr(CXmlNode *& pNode); /*************************************************** Type: public Explain: 删除当前节点的指定属性。 Para: [in] pNode 删除的属性指针 ***************************************************/ void DeleteAttr(CXmlNode *& pNode); /*************************************************** Type: public Explain: 删除指定属性名的属性节点。 Para: [in] sName 属性名 ***************************************************/ bool DeleteAttrByName(string sName); /*************************************************** Type: public Explain: 获取当前节点的类型 Return: 节点类型 ***************************************************/ unsigned int GetType(); /*************************************************** Type: public Explain: 获取子节点的个数。 Return: 子节点的个数 ***************************************************/ unsigned int GetSonCounts(); /*************************************************** Type: public Explain: 根据索引编号获取子节点指针。 Para: [in] nIndex 索引编号 Return: 子节点指针 Mark: 当索引编号超出范围时,函数返回0 ***************************************************/ CXmlNode * GetSonByIndex(unsigned int nIndex); /*************************************************** Type: public Explain: 根据类型获取子节点指针。 Para: [in] nIndex 索引编号 Return: 子节点指针 Mark: 当索引编号超出范围时,函数返回0 ***************************************************/ CXmlNode * GetSonByType(unsigned int nType); /*************************************************** Type: public Explain: 获取属性的个数。 Return: 属性的个数 ***************************************************/ unsigned int GetAttrCounts(); /*************************************************** Type: public Explain: 根据索引编号获取属性指针。 Para: [in] nIndex 索引编号 Return: 获取的属性指针 Mark: 当索引编号超出范围时,函数返回0 ***************************************************/ CXmlNode * GetAttrByIndex(unsigned int nIndex); /*************************************************** Type: public Explain: 根据属性名获取属性指针。 Para: [in] sName 属性名 Return: 获取的属性指针 Mark: 当指定的属性名不存在时,函数返回0 ***************************************************/ CXmlNode * GetAttrByName(string sName); /*************************************************** Type: public Explain: 根据索引编号获取属性名。 Para: [in] nIndex 索引编号 Para: [out] sName 属性名 Return: true成功,false失败 Mark: 当索引编号超出范围时,函数返回false ***************************************************/ bool GetAttrNameByIndex(unsigned int nIndex, string & sName); /*************************************************** Type: public Explain: 根据属性名获取属性值。 Para: [in] sName 属性名 Para: [out] sValue 属性值 Return: true成功,false失败 Mark: 当指定的属性名不存在时,函数返回false ***************************************************/ bool GetValue(string sName, string & sValue); }; #endif ...展开收缩
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: 跨平台 解析xml XmlNode
 输入关键字,在本站1000多万海量源码库中尽情搜索: