windows c语言解析XML,C语言实现的XML解析器

这篇博客介绍了一个用C语言编写的简单XML解析器,适用于嵌入式开发,特别是那些内存管理有限的设备。解析器核心代码仅600行,不支持XML生成,但能解析ANSI编码的XML文件,且避免了动态内存分配,减少内存碎片。博客提供了接口定义及使用示例,并指出解析缓冲区大小应至少为XML文件大小的两倍。
摘要由CSDN通过智能技术生成

最近做嵌入式开发,板子上面需要有解析XML的功能,理所当然地我就去网上找开源的来用。结果找来的要不是C++的,要不就是超级复杂的。像libxml,我统计了下解析一个40几KB的XML文件,居然动态申请内存100多次,对于没有mmu功能的arm7,真是无福消受了。

所以,我只能自己写一个来用了。

我写的这个xml解析器,非常简单,核心代码只有600多行。当然,功能也相对弱些,只支持ansi编码的xml文件,只能解析,不能生成。

整个解析器只用到了 若干条 EBNF文法 和 一个DFA状态机 (用来跳过注释的), 采用了递归下降的分析方法.

整个解析过程没有动态申请内存,不会造成内存碎片(特别适应于没有mmu的设备), 当然,在开始解析之前,还是需要提供一片缓冲给解析器用的,最后生成的XML树,就放在这片缓冲里面.

接口如下:

/******************************************************

/* minixml.h

/*

/* author:@#$%^&*

/*

/* about:

/* 该文件提供根据解析XML文件功能

/*

/*

/* sample:

/*

/* 支持平台: windows , linux 2.4,2.6 uclinux

/* [in] 表示是输入参数

/* [out] 表示是输出参数

/***************************************************

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值