對tinyxml操作的常用接口封裝——CUDxml

一背景:

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;
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章