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,没有空格
函数返回:
获取的数据指针
说明:
此函数用于获取指定节点的文本内容

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