嵌入式C项目是否有一个很好的小型XML解析器?

时间:2010-09-17 22:21:56

标签: c xml embedded

我正在为一个嵌入式项目提供一个非常小的XML解析器。它需要编译为10-15k,不需要验证,并且需要简单和便携。

5 个答案:

答案 0 :(得分:8)

我能够为C调整以下XML解析器库的编译标志,并在我的Ubuntu机器上减少了超过50%的大小。 Mini-XML是唯一接近您要求的内容:

这里有一个很好的讨论:

C XML library for Embedded Systems

答案 1 :(得分:6)

我最近在搜索一个,我找到了SimpleXML(http://simplexml.sourceforge.net/)和稍大的sxmlc(http://sourceforge.net/projects/sxmlc/

我发现SimpleXML更有趣,因为它更简单,我没有尝试它但看起来它符合我的想法,单个文件(井.h和.c)库不支持异国情调的XML功能

  

简单的XML解析器是XML子集的微小解析器(除了实体和命名空间之外的所有东西)。它使用简单的“每个标签一个处理程序”接口,适用于资源有限的设备。

答案 2 :(得分:5)

您可以随时推广自己的实施。几年前我这样做了,刚刚在mercurial.intuxication.org/hg/cstuff的代码中添加了一些界面文档。

请注意,解析器从未在生产环境中使用,甚至未经过初步测试;注释也不存在,所以如果你需要修改代码,那就好好学习代码;)

答案 3 :(得分:5)

试试yxml - 这是一款非常小巧,快速的非验证解析器。

答案 4 :(得分:1)

我开发了sxmlc(" C&#34中的简单XML;)完全是这样的:尽可能少的文件。它只有一个文件,可选"搜索"如果您需要通过文档进行类似XPath的搜索,则可以添加文件。

它处理DOM样式加载(内存中的整个文档树)或SAX样式加载(每当使用其属性读取节点或在节点上读取文本时调用回调)。如果记忆是一个问题,你会对SAX感兴趣。

有些人也对它可以解析文件或内存缓冲区这一事实感兴趣(当您将XML作为Web回复时很有用)。

它处理从版本4到#define的Unicode文件,所以如果你不需要Unicode,就不要定义SXMLC_UNICODE而且不会有任何二进制中的权重增加。

在将XML写回磁盘时,我还必须说保留注释!当人们花时间在XML文件中解释配置语法时,我总是感到很遗憾(" put' true'以启用特殊压缩..."),这些都是在应用程序保存后擦除的

它在Linux和Windows下编译。我很乐意将人们愉快地嵌入到路由器中。

由于我想尽量保持简单,我可能不会添加新功能,而是改进现有功能(当然还有正确的错误!:))。除非报告错误,否则我的开发不是很积极。