目錄本文介紹的是採用freecplus框架的解析xml格式字串函式。
函式和類的宣告檔案是freecplus/_freecplus.h。
函式和類的定義檔案是freecplus/_freecplus.cpp。
示例程式位於freecplus/demo目錄中。
編譯規則檔案是freecplus/demo/makefile。
xml格式字串是應用開發中被廣泛採用的一種資料格式,簡單易懂,容錯性和可擴充套件性非常好,是資料處理、資料通訊和資料交換等應用場景的首選資料格式。
完整的xml格式比較複雜,但是,在實際開發中,對我們c/c++程式設計師來說,絕大部分場景下用到的xml資料格式比較簡單,例如表示檔案列表資訊的xml資料集或檔案內容如下:
_freecplus.h
2020-01-01 12:20:35
1834
_freecplus.cpp
2020-01-01 10:10:15
5094
資料集說明:
:資料集的開始。
:資料集的結束。
:每行資料的結束。
filename標籤:檔名。
mtime標籤:檔案最後一次被修改的時間。
size標籤:檔案的大小。
在freecplus框架中,提供了解析以下xml格式字串的一系函式。
函式宣告:
bool getxmlbuffer(const char *xmlbuffer,const char *fieldname,bool *value);
bool getxmlbuffer(const char *xmlbuffer,const char *fieldname,int *value);
bool getxmlbuffer(const char *xmlbuffer,const char *fieldname,unsigned int *value);
bool getxmlbuffer(const char *xmlbuffer,const char *fieldname,long *value);
bool getxmlbuffer(const char *xmlbuffer,const char *fieldname,unsigned long *value);
bool getxmlbuffer(const char *xmlbuffer,const char *fieldname,double *value);
bool getxmlbuffer(const char *xmlbuffer,const char *fieldname,char *value,const int ilen=0);
引數說明:
xmlbuffer:待解析的xml格式字串的內容。
fieldname:欄位的標籤名。
注意,當value引數的資料型別為char 時,必須保證value陣列的記憶體足夠,否則可能發生記憶體溢位的問題,也可以用ilen引數限定獲取字段內容的長度,ilen的預設值為0,表示不限定獲取字段內容的長度。
返回值:true-獲取成功;false-獲取失敗。
示例(demo22.cpp)
/*
* 程式名:demo22.cpp,此程式演示呼叫freecplus框架的getxmlbuffer函式解析xml字串。
*/#include "../_freecplus.h"
// 用於存放足球運動員資料的結構體。
struct st_player
stplayer;
int main()
對c/c++程式設計師來說,採用簡單的xml字串表達資料可以提高開發效率,我不建議採用複雜的xml格式,會讓程式**很煩鎖。
如果在實際開發中需要解析更複雜的xml,可以尋找網上的開源庫,例如libxml++。
freecplus框架 xml解析
本文介紹的是採用freecplus框架的解析xml格式字串函式。函式和類的宣告檔案是freecplus freecplus.h。函式和類的定義檔案是freecplus freecplus.cpp。示例程式位於freecplus demo目錄中。編譯規則檔案是freecplus demo makefi...
freecplus框架 xml解析
本文介紹的是採用freecplus框架的解析xml格式字串函式。函式和類的宣告檔案是freecplus freecplus.h。函式和類的定義檔案是freecplus freecplus.cpp。示例程式位於freecplus demo目錄中。編譯規則檔案是freecplus demo makefi...
freecplus框架 目錄操作
目錄本文介紹的是freecplus框架的目錄操作函式和類。函式和類的宣告檔案是freecplus freecplus.h。函式和類的定義檔案是freecplus freecplus.cpp。示例程式位於freecplus demo目錄中。編譯規則檔案是freecplus demo makefile。...