知识大全 C语言实现的XML解析器[1]
Posted 属性
篇首语:历史是知识分子文化活动的结果。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C语言实现的XML解析器[1]相关的知识,希望对你有一定的参考价值。
C语言实现的XML解析器[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
最近做嵌入式开发 板子上面需要有解析XML的功能 理所当然地我就去网上找开源的来用 结果找来的要不是C++的 要不就是超级复杂的 像libxml 我统计了下解析一个 几KB的XML文件 居然动态申请内存 多次 对于没有mmu功能的arm 真是无福消受了
所以 我只能自己写一个来用了
我写的这个xml解析器 非常简单 核心代码只有 多行 当然 功能也相对弱些 只支持ansi编码的xml文件 只能解析 不能生成
整个解析器只用到了 若干条 EBNF文法 和 一个DFA状态机 (用来跳过注释的) 采用了递归下降的分析方法
整个解析过程没有动态申请内存 不会造成内存碎片(特别适应于没有mmu的设备) 当然 在开始解析之前 还是需要提供一片缓冲给解析器用的 最后生成的XML树 就放在这片缓冲里面
接口如下:
/****************************************************** /* minixml h /* /* author:@#$%^&* /* /* about: /* 该文件提供根据解析XML文件功能 /* /* /* sample: /* /* 支持平台: windows linux uclinux /* [in] 表示是输入参数 /* [out] 表示是输出参数 /******************************************************/ #ifndef _MINIXML_H_ _ _ #define _MINIXML_H_ _ _ #define _CRT_SECURE_NO_DEPRECATE
#if defined (__cplusplus) || defined (c_plusplus) extern C #endif
struct _MINI_XML_ATTRI; struct _MINI_XML_NODE;
/* 记录一个属性信息 */ typedef struct _MINI_XML_ATTRI char* name; /* 属性名 */ char* value; /* 属性值 */ struct _MINI_XML_ATTRI* next; /* 指向下一个属性 */ MINI_XML_ATTRI;
/* 记录一个XML节点信息 */ typedef struct _MINI_XML_NODE char* name; /* 节点名 */ char* value; /* 节点值 */
MINI_XML_ATTRI* attri_list; /* 属性列表 */ struct _MINI_XML_NODE* parent; /* 父节点 */ struct _MINI_XML_NODE* child; /* 子节点 若没有则为空 */ struct _MINI_XML_NODE* next; /* 同层下一节点 */ MINI_XML_NODE;
cha138/Article/program/net/201311/14907相关参考
WEB页面工具语言XML(二)定义 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! XML是一个精
WEB页面工具语言XML(一)产生背景 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! XML同H
解析.Net框架下的XML编程技术[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
使用PHP5.0轻松解析XML文档(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 用sax
作者luster 摘要:NeideAsseblerProject计划提供了一个非常好用的i汇编器这个汇编器是用C写的可以支持很多种对象文件格式 今天我们接着看看还有其他什么可以选择的汇编编译器
java解析XML和java解析HTML 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一dom
Struts2教程3:struts.xml常用配置解析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
用PHP工具包expat解析XML 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!如今人人鼓吹XML
java使用JDOM解析xml文件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!java中如何使用
Struts,JSP和XML解析三个问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!struts