当前位置:首页 >  聚焦  > 正文

一个基于C语言的XML解析器!

时间:2023-05-17 22:30:41     来源:面包芯语

simple_xml 简介

基于C语言的XML解析器,已有的一些开源解析器都与操作系统相关,对于一些并不主流的操作系统以及嵌入式操作系统,想应用XML文件,就显得比较困难。

开发本项目的目的在于开发一个能在多平台应用的代码,但因为接触的平台并不多,需要大家的帮助来慢慢改善。目前代码已经应用在WIN10、Linux、rt-thread、VxWorks等主流操作系统。


(相关资料图)

simple_xml 特点

•实现了xml node对象,是本解析器最核心的功能实现

•基于xml node对象,派生了xml element对象,使得相关函数对xml element的操作更容易

•应用程序主要使用xml element对象的函数来读取或写入xml element的属性,文本,子节点等

•提供了字符串的相关函数集,减少对标准库的依赖,便于跨平台的支持

•支持全功能OS平台、也支持运行在裸机环境,但使用了动态内存分配,裸机环境下要考虑文件系统以及动态内核分配的实现

•提供了在使用xml会用得上的一些函数,比如xml_ishex,用来判断字符串是否为hex格式的字符串

•提供了文件操作抽象层和内存操作抽象层,用于分离与平台相关的API,主要目的是为了方便扩展未支持的文件系统和动态内存管理库

目录结构

移植方法

1.将inc和src两个文件夹Copy到自己的目录

2.在调试simple_xml的API的.c文件中包含头文件xml_export.h

已支持OS平台

1.配置xml_config.h中的宏OS_VER为目标系统

未支持平台

1.配置xml_config.h中的宏OS_VER为OS_UNKOWN

2.调用xml_fconfig函数和xml_mconfig函数配置文件抽象操作函数和内存抽象操作函数

使用示例

由于目前已经没有VxWorks的工作环境,暂无法测试,但从使用经验上来看,跟Linux基本一样。

基于GCC+Makefile构建

仅在Linux的环境下做了测试。在WIN10下makefile的脚本未作兼容,使用起来会有问题,建议在WIN10使用的示例直接使用VS2019来搭建测试环境。

1.进入目录example/build/make

2.在命令行输入:$ make

3.在命令行输入:$ ./simple_xml ../../xmltest.xml

4.检查打印内容是否与xmltest.xml一致

基于rt-thread构建

手动移植

1.将整个simple_xml目录放入rt-thread BSP里的packages目录

2.手动在rtconfig.h头文件中加入

#definePKG_USING_SIMPLE_XML#definePKG_USING_SIMPLE_XML_EXAMPLE

1.在ENV工具中编译

>scons

1. 下载固件到目标板或qemu中。

2. 将example/xmltest.xml放入rt-thread的文件系统中。

3.输入以下指令

msh/>xml_test

•使用软件包

1.在ENV环境下使用menuconfig,找到simple_xml

RT-Threadonlinepackages→IoT-internetofthings→simple_xml:BasedontheXMLparseroftheClanguage.

1.下载软件包

>pkgs--update

1.同手动移植第3步

仓库

•github : https://github.com/xfwangqiang/simple_xml.git

•gitee : https://gitee.com/xfwangqiang/simple_xml.git

本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。

猜你喜欢:

柔性数组在实际项目中的应用?

干货 | protobuf-c之嵌入式平台使用

C语言、嵌入式重点知识:回调函数

实用 | 10分钟教你搭建一个嵌入式web服务器

标签:

推荐文章