计算机二级考试C语言辅导:C语言实现的XML解析器

计算机二级考试C语言辅导:C语言实现的XML解析器,第1张

计算机二级考试C语言辅导:C语言实现的XML解析器,第2张

最近在做嵌入式开发的时候,板卡需要解析XML的功能。自然我会去网上找开源的来用。结果不是C++就是超级复杂。和libxml一样,我统计解析了一个40 KB的xml文件,实际动态申请内存100多次。对于没有mmu功能的arm7来说,真的不行。
所以,我只能自己写一个来用。
我写的这个xml解析器非常简单,只有600行核心代码。当然功能比较弱。它只支持ansi编码的xml文件,只能解析不能生成。
整个解析器只使用了几个EBNF文法和一个DFA状态机(用来跳过注释),采用递归下降分析方法。
整个解析过程没有动态内存应用,不会造成内存碎片(特别适合没有mmu的设备)。当然,在解析开始之前,仍然需要为解析器和最终生成的XML树提供缓冲区。把它放在这个缓冲器里。
接口如下:
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
/*关于:
/*该文件提供了根据
/*
/*
/*示例:
/*
/*支持的平台:Windows、。2.6 uclinux
/* [in]表示输入参数
/* [out]表示输出参数
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ifndef _ MINIXML _ H _ 08 _ 17 _
# define _ MINIXML _ H _ 08 _ 17 _
# define _ CRT _ SECURE _ NO _ DEPRECATE
# if defined(_ _ cplusplus)| | defined(如果已定义
struct _ MINI _ XML _ NODE;
/*记录一条属性信息*/
typedef struct _ mini _ XML _ attri
{
char * name;/*属性名*/
char * value;/*属性值*/
struct _ mini _ XML _ attri * next;/*指向下一个属性*/
} MINI _ XML _ ATTRI;

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 计算机二级考试C语言辅导:C语言实现的XML解析器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情