一背景:
tinyxml對xml操作的接口過於分散,爲了適應自己的需要,對常用的接口進行簡單的封裝,各個接口增加註釋,方便使用。 UD——USER DEFINE。
二描述:
封裝了三個類:文檔訪問類CUDXml、元素訪問類CUDXmlNodePtr以及屬性訪問類CUDXmlAttribute。
三源碼:
四接口預覽
/******************************************************************************
描述: 對tinyxml庫封裝的簡單類:
1,創建、保存xml
2,動態創建節點,更改名稱以及值;動態刪除
3,動態增加、刪除屬性,遍歷、讀取屬性名稱以及值
背景: tinyxml對xml操作的接口過於分散,爲了適應自己的需要,對常用的接口進行簡單的封
裝,各個接口增加註釋,方便使用。
環境: WinXP+VC6
修改: 仇軍利 EMAIL:[email protected] QQ:282881515
版本: 2012-12-28 V1.0
發佈: CSDN
******************************************************************************/
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;
};