一背景:
tinyxml对xml操作的接口过于分散,为了适应自己的需要,对常用的接口进行简单的封装,各个接口增加注释,方便使用。 UD——USER DEFINE。
二描述:
封装了三个类:文档访问类CUDXml、元素访问类CUDXmlNodePtr以及属性访问类CUDXmlAttribute。
三源码:
四接口预览
/******************************************************************************
描述: 对tinyxml库封装的简单类:
1,创建、保存xml
2,动态创建节点,更改名称以及值;动态删除
3,动态增加、删除属性,遍历、读取属性名称以及值
背景: tinyxml对xml操作的接口过于分散,为了适应自己的需要,对常用的接口进行简单的封
装,各个接口增加注释,方便使用。
环境: WinXP+VC6
修改: 仇军利 EMAIL:282881515@163.COM QQ:282881515
版本: 2012-12-28 V1.0
发布: 优快云
******************************************************************************/
class CUDXmlAttribute
{
public:
CUDXmlAttribute() { m_pAttribute=NULL ; }
CUDXmlAttribute( TiXmlAttribute *pAttribute){ m_pAttribute=pAttribute; }
// 下一个属性
CUDXmlAttribute Next();
// 前一个属性
CUDXmlAttribute Pre();
// 返回属性名称
string Name();
// 设置属性名称
void SetName(const char* name);
// 返回属性值string类型
string Value();
// 返回属性值int类型
int IntValue();
// 返回属性值double类型
double DoubleValue();
// 设置属性值
void SetValue(const char* value);
private:
TiXmlAttribute *m_pAttribute;
};
class CUDXmlNodePtr
{
public:
CUDXmlNodePtr() { m_pElement=NULL; }
CUDXmlNodePtr(TiXmlElement *pElement) { m_pElement=pElement; }
CUDXmlNodePtr(TiXmlNode* pNode) { m_pElement=pNode->ToElement(); }
BOOL operator==(CUDXmlNodePtr&node);
// 添加新的节点
CUDXmlNodePtr NewChild(const char* name);
// 获取第一个孩子节点,默认返回第一个孩子节点
CUDXmlNodePtr GetFirstChild(const char* name=NULL);
// 获取下一个兄弟节点,默认返回下边第一个兄弟节点
CUDXmlNodePtr NextSibling(const char* name=NULL);
// 获取上一个兄弟节点,默认返回上边第一个兄弟节点
CUDXmlNodePtr PreSibling(const char* name=NULL);
// 自我销毁
BOOL Destory();
// 销毁所有孩子节点
void DestoryAllChildren();
// 设置属性
void SetAttribute(const char* name, const char* value);
// 读取属性值
string GetAttribute(const char* name);
CUDXmlAttribute GetFirstAttribute();
CUDXmlAttribute LastAttribute();
// 设置节点名称
void SetName(const char*name);
// 获取节点名称
string GetName();
// 设置节点值
void SetValue(const char* value);
// 获取节点值
string GetValue();
// 判断该节点是否为空
BOOL IsNull();
// 返回根节点
CUDXmlNodePtr Root();
public:
TiXmlElement *m_pElement;
};
class CUDXml
{
public:
// 创建xml文件 默认声明为<?xml version="1.0" encoding="UTF-8" standalone="no"?>
BOOL CreateXml(const char* path, const char* version="1.0", const char* encoding="UTF-8", const char* standalone="no");
// 打开文件
BOOL Open(const char* path);
// 保存文件
BOOL Save(const char* path=NULL);
// 获取根节点
CUDXmlNodePtr GetRoot();
// 判断该文件是否存在
BOOL IsExist(const char* path);
private:
TiXmlDocument m_doc;
};