minimxml使用_介紹

1 簡介

工作中經常使用mxml進行數據傳輸,所以需要構造或者解析mxml數據,因爲做個簡單記錄,方便使用。
關於mxml的介紹,這裏就不再說明,百度就會得到一大堆詳細介紹。
解析和構造部分依賴於minixml,不用自己造輪子了。

2下載及編譯

2.1 mxml庫的下載地址:

https://www.msweet.org/mxml/index.html

2.2 編譯

在PC上編譯,直接使用GCC工具鏈,可以使用下面的指令:

./configure && make

交叉編譯使用下面的指令:

./configure --host=arm-hisiv100nptl-linux

2.3 生成庫

在編譯完成後,會生成如下庫:

libmxml.a  libmxml.so  libmxml.so.1  libmxml.so.1.6

我們在自己的程序需要添加mxml頭文件,以及在編譯程序中鏈接上面的庫。

3 重要函數簡介

3.1 mxmlNewXML

函數原型:

extern mxml_node_t	*mxmlNewXML(const char *version);

函數參數:
version:默認傳入字符”1.0”
函數返回:
返回新創建的xml文件節點
說明:
當新創建xml文件時,需要先調用此函數。

3.2 mxmlNewElement

函數原型:

extern mxml_node_t	*mxmlNewElement(mxml_node_t *parent, const char *name);

函數參數:
parent:父節點名稱
name: 新創建的子節點名稱
函數返回:
返回新創建的子節點名稱
說明:
當爲某一個節點創建一個子節點時候,調用此函數

3.3 mxmlNewText

函數原型:

extern mxml_node_t	*mxmlNewText(mxml_node_t *parent, int whitespace, const char *string);

函數參數:
parent: 節點
whitespace: 設置爲0,即文本前空格數爲0
string: 文本內容
函數返回:
忽略
說明:
爲某個節點創建文本內容

3.4 mxmlSaveString

函數原型:

extern int		mxmlSaveString(mxml_node_t *node, char *buffer,
			               int bufsize, mxml_save_cb_t cb);

函數參數:
node:被保存的xml節點的根節點,一般是mxmlNewXML創建的根節點
buff:要保存的buff指針
bufsize:buff的大小
cb: 默認使用MXML_NO_CALLBACK
函數返回:
函數執行情況
說明:
保存創建的節點數據

3.5 mxmlDelete

函數原型:

extern void		mxmlDelete(mxml_node_t *node);

函數參數:
node:要刪除的節點,一般是mxmlNewXML創建的根節點
函數返回:

說明:
此函數刪除節點,即釋放此節點指向的所有節點申請的內存,一般在創建完xml文件,並保存完之後,調用此函數釋放節點

3.6 mxmlLoadString

函數原型:

extern mxml_node_t	*mxmlLoadString(mxml_node_t *top, const char *s,
			                mxml_type_t (*cb)(mxml_node_t *));

函數參數:
top:要加載的節點的父節點,如果是直接從內存buff中獲取,可以直接置爲NULL
s:內存buff
cb:默認使用MXML_NO_CALLBACK
函數返回:
xml的父節點
說明:
從內存buff中加載xml,並進行分析獲取父節點

3.7 mxmlFindElement

函數原型:

extern mxml_node_t	*mxmlFindElement(mxml_node_t *node, mxml_node_t *top,
			                 const char *element, const char *attr,
					 const char *value, int descend);

函數參數:
node:被查找的節點
top: 頂層節點
element:要查找的節點的字段
attr:要查找節點的屬性,可爲NULL
value:要查找節點的屬性的值,可爲NULL
descend:模式,主要有三個參數,

#define MXML_DESCEND		1	/* Descend when finding/walking */
#define MXML_NO_DESCEND	0	/* Don't descend when finding/walking */
#define MXML_DESCEND_FIRST	-1	/* Descend for first find */

函數返回:
子節點
說明:
從node節點中查找字段爲element的子節點

3.8 mxmlGetText

函數原型:

extern const char	*mxmlGetText(mxml_node_t *node, int *whitespace);

函數參數:
node:要獲取的節點
whitespace:0,沒有空格
函數返回:
獲取的數據指針
說明:
此函數用於獲取指定節點的文本內容

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