知识大全 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(二)定义

WEB页面工具语言XML(二)定义  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  XML是一个精

知识大全 WEB页面工具语言XML(一)产生背景

WEB页面工具语言XML(一)产生背景  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  XML同H

知识大全 解析.Net框架下的XML编程技术[1]

解析.Net框架下的XML编程技术[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 使用PHP 5.0 轻松解析XML文档(1)

使用PHP5.0轻松解析XML文档(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  用sax

知识大全 一起学习在linux下使用汇编语言(3)

  作者luster  摘要:NeideAsseblerProject计划提供了一个非常好用的i汇编器这个汇编器是用C写的可以支持很多种对象文件格式  今天我们接着看看还有其他什么可以选择的汇编编译器

知识大全 java解析XML和java解析HTML

java解析XML和java解析HTML  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一dom

知识大全 struts.xml常用配置解析

Struts2教程3:struts.xml常用配置解析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 用PHP工具包expat解析XML

用PHP工具包expat解析XML  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!如今人人鼓吹XML

知识大全 java 使用JDOM解析xml文件

java使用JDOM解析xml文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!java中如何使用

知识大全 Struts, JSP和XML解析三个问题

Struts,JSP和XML解析三个问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!struts