Mini-XML 入门
这一章描述了如何写一个程序使用Mini-XML来访问XML文件中的数据.Mini-XML提供了以下功能:
- 在内存中创建和管理XML文档的函数.
- 读UTF-8和UTF-16 编码的XML文件和字符串.
- 写UTF-8 编码的XML文件和字符串.
- 支持任意的元素名称,属性以及属性值,没有任何其他限制,仅受限于有效内存.
- 支持整形、浮点、自定义("CDATA")和文本数据类型在"叶"节点.
- 提供"查找"、"索引"、以及"步进"函数可以很简单的访问XML文档中的数据.
Mini-XML 不进行基于"XML方案(SCHEMA)"文件或者其他内容源定义信息的校验和其他类型的处理 ,也不支持其他组织所要求的XML规范.
基础知识
Mini-XML 提供的一个你需要包含的头文件:
#include <mxml.h>
把Mini-XML库连接到你的应用程序使用 -lmxml 选项:
gcc -o myprogram myprogram.c -lmxml ENTER
如果你已经安装pkg-config(1) 软件, 你可以使用它来为你的安装确定适当的编译和连接选项:
pkg-config --cflags mxml ENTER pkg-config --libs mxml ENTER
节点
每一块XML文件中的信息片断(元素、文本、数字)是一个存储在内存中的"节点(nodes)" .节点使用 mxml_node_t 结构进行定义. 它的type 成员变量定义了节点类型(element, integer, opaque, real, or text) 决定了需要从联合(union)类型的成员变量 value 中获取的值.
值 | 类型 | 节点成员 |
---|---|---|
用户定义 | void * | node->value.custom.data |
XML元素 | char * | node->value.element.name |
整数 | int | node->value.integer |
不透明字符串 | char * | node->value.opaque |
浮点数 | double | node->value.real |
文本 | char * | node->value.text.string |
译者:节点类型定义枚举参见:
mxml_type_e。Mini-XML中的节点类型定义和其他有些解析器有些不同,其中整数、浮点、和文本节点是指在一个XML元素中一系列的使用空格作为分割的值,每个元素可以拥有多个以上节点,并可以选择使用空格分开,如:<abc>aa bb cc</abc>,Mini-MXML在使用参数:MXML_TE