序言
构建,安装,以及打包Mini-XML
- 编译 Mini-XML
- 使用 Visual C++ 进行编译
- 使用命令行工具进行编译
- 安装 Mini-XML
- 创建 Mini-XML 包
Mini-XML 入门
- 基础知识
- 节点
- 创建 XML 文档
- 加载 XML
- 保存 XML
- 搜索和遍历节点
更多的 Mini-XML 编程技术
- 加载回调函数
- 保存回调函数
- 用户定义数据类型
- 改变节点的值
- 格式化文本
- 索引
- SAX (流方式解析) 加载文档
使用 mxmldoc 工具
Mini-XML 许可信息
发行说明
库参考手册
- 目录
- 函数
- mxmlAdd
- mxmlDelete
- mxmlElementDeleteAttr
- mxmlElementGetAttr
- mxmlElementSetAttr
- mxmlElementSetAttrf
- mxmlEntityAddCallback
- mxmlEntityGetName
- mxmlEntityGetValue
- mxmlEntityRemoveCallback
- mxmlFindElement
- mxmlIndexDelete
- mxmlIndexEnum
- mxmlIndexFind
- mxmlIndexNew
- mxmlIndexReset
- mxmlLoadFd
- mxmlLoadFile
- mxmlLoadString
- mxmlNewCDATA
- mxmlNewCustom
- mxmlNewElement
- mxmlNewInteger
- mxmlNewOpaque
- mxmlNewReal
- mxmlNewText
- mxmlNewTextf
- mxmlNewXML
- mxmlRelease
- mxmlRemove
- mxmlRetain
- mxmlSAXLoadFd
- mxmlSAXLoadFile
- mxmlSAXLoadString
- mxmlSaveAllocString
- mxmlSaveFd
- mxmlSaveFile
- mxmlSaveString
- mxmlSetCDATA
- mxmlSetCustom
- mxmlSetCustomHandlers
- mxmlSetElement
- mxmlSetErrorCallback
- mxmlSetInteger
- mxmlSetOpaque
- mxmlSetReal
- mxmlSetText
- mxmlSetTextf
- mxmlSetWrapMargin
- mxmlWalkNext
- mxmlWalkPrev
- 类型定义(typedef)
- mxml_attr_t
- mxml_custom_destroy_cb_t
- mxml_custom_load_cb_t
- mxml_custom_save_cb_t
- mxml_custom_t
- mxml_element_t
- mxml_error_cb_t
- mxml_index_t
- mxml_load_cb_t
- mxml_node_t
- mxml_save_cb_t
- mxml_sax_cb_t
- mxml_sax_event_t
- mxml_text_t
- mxml_value_t
- 结构(struct)
- mxml_attr_s
- mxml_custom_s
- mxml_element_s
- mxml_index_s
- mxml_node_s
- mxml_text_s
- 联合(union)
- Constants
- mxml_sax_event_e
- mxml_type_e
XML方案 (用于自动化文档生成工具 mxmldoc)
序言
这份程序员参考手册描述了 Mini-XML 2.5版本, 一个小型的 XML 解析库,使用它可以使你的C或者C++应用程序方便的进行XML数据文件的读写
Mini-XML 最初是为了 Gutenprint 项目而开发,目的是为了替换既大又笨重的 libxml2 库, 想要实现一个小型且易于使用的一些东西. 它开始于2003年6月的一个早晨,当时罗伯特发表了下面几句话到开发者列表:
"这真是糟糕,我们需要libxml2,但反复看来,我们的XML解析器仅需要我们可以操作的一小部分。"
我做了以下回复:
"考虑到你使用XML仅在一个有限的范围中,那么只使用几百行代码来编写一个微型XML (mini-XML) API,应该是很简单的。"
我接受了这个挑战,用了两天的时间进行疯狂的编码,并且公开发布了第一个mini-XML版本,总共是696行代码。然后,罗伯特迅速把mini-XML整合到 Gutenprint 中,并且移除了libxml2库
感谢很多不同的开发者给我的回馈和支持, 从那以后,Mini-XML逐渐发展为一个提供更多完整的XML实现,当前已经高达3441行代码,但已经可以和103893行代码的libxml2 2.6.9版本相比较了。
译者:仅用了两天时间,作者真是大牛啊!我较喜欢Mini-XML,我也用过TinyXML,libexpat,libxml2等解析器,相比之下Mini-XML实现了一个非常简洁且功能适用的解析器,很适合我的需求:DOM型解析器、解析小型的XML文件,不进行错误恢复及校验,简单易用,且使用纯ANSI-C实现,方便移植到嵌入系统中。评价:很好很强大,而且很简单。Z.F
除了Gutenprint ,mini-XML当前已经应用于以下的项目/应用软件:
- Common UNIX Printing System
- CUPS Driver Development Kit
- ZynAddSubFX
如果您希望将您的项目添加到此列表或者从此列表中删除,或者如果您有任何意见和想法,或者想要发布关于使用mini-XML的经验,请给我发电子邮件( [email protected] )
本文档组织结构
本手册由以下章节和附录组成:
- 第一章, "构建,安装,以及打包Mini-XML", 关于mini-XML在编译、安装以及打包方面的说明.
- 第二章, "Mini-XML 入门",如何在你的应用程序中使用mini-XML.
- 第三章, "更多的 Mini-XML 编程技术展示了使用mini-XML库的更多的方法。
- 第四章, "使用 mxmldoc 工具", 描述如何使用mxmldoc(1) 程序来生成文档.
- 附录 A, "Mini-XML 许可信息 ",使用和发布mini-XML的条款及条件。
- 附录 B, "发行说明", 列出了每次mini-XML发布版本的改变信息.
- 附录 C, "库参考手册", 包含了关于mini-XML的完整参考信息,使用 mxmldoc生成.
- 附录 D, "XML方案", 显示了 mxmldoc 生成XML文件时使用的 XML 方案.
词法约定
在这篇手册中使用了一些字体和风格的约定.下面是一些例子含义和使用说明:
-
lpstat
lpstat(1)
-
命令名称;如果在一章中第一次提及这个系统命令或者函数,则后面跟随手册页编号。
译者:上面指Linux 的manpages 手册,使用man命令查看。Z.F
-
/var
/usr/share/cups/data/testprint.ps
-
文件或者目录.
-
Request ID is Printer-123
-
屏幕输出.
-
lp -d printer filename ENTER
-
用户输入的文字,特殊键如 ENTER 总是使用大写.
-
12.3
-
文本中的数字,使用(.)来表示小数点.
缩略词
下面是在本手册中使用的缩略词:
-
Gb
-
GB, 即 1073741824 字节,1*1024*1024*1024 字节
-
kb
-
即 1024 字节,1*1024 字节
-
Mb
-
兆, or 1048576 bytes,1*1024*1024 字节
-
UTF-8, UTF-16
-
统一的字符编码标准, 8-位 或 16-位
-
W3C
-
万维网联盟
-
XML
-
可扩展标记语言
其他参考
-
The Unicode Standard, Version 4.0, Addison-Wesley, ISBN 0-321-18578-1
-
定义了用于XML的Unicode字符集.
-
Extensible Markup Language (XML) 1.0 (Third Edition)
-
W3C制定的XML标准.
法律资料
The Mini-XML library is copyright 2003-2008 by Michael Sweet.
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details.