• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

simple_xml: 基于C语言的XML解析器,已有的一些开源解析器都与操作系统相关,对于一些 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

simple_xml

开源软件地址:

https://gitee.com/xfwangqiang/simple_xml

开源软件介绍:

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,主要目的是为了方便扩展未支持的文件系统和动态内存管理库

目录结构

名称描述
docs计划对各模块进行详细的解释说明,目前还没有完整
examples包含一个main.c和xmltest.xml作为示例
incsimple_xml的头文件
srcsimple_xml的源文件
LICENSEMIT License
README.md对SimpleXML的说明
Sconscriptrt-thread软件包中编译脚本

移植方法

    1. 将inc和src两个文件夹Copy到自己的目录
    1. 在调试simple_xml的API的.c文件中包含头文件xml_export.h

已支持OS平台

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

未支持平台

    1. 配置xml_config.h中的宏OS_VER为OS_UNKOWN
    1. 调用xml_fconfig函数和xml_mconfig函数配置文件抽象操作函数和内存抽象操作函数

使用示例

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

基于GCC+Makefile构建

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

    1. 进入目录example/build/make
    1. 在命令行输入:
      $ make
    1. 在命令行输入:
      $ ./simple_xml ../../xmltest.xml
    1. 检查打印内容是否与xmltest.xml一致

基于GCC+Scons构建

基于rt-thread构建

  • 手动移植
  1. 将整个simple_xml目录放入rt-thread BSP里的packages目录
  2. 手动在rtconfig.h头文件中加入
#define PKG_USING_SIMPLE_XML#define PKG_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-Thread online packages     → IoT - internet of things         → simple_xml  : Based on the XML parser of the C language.
  1. 下载软件包
> pkgs --update
  1. 同手动移植第3步

仓库

文档

日志

  • 2022年,在RT-Thread RTOS平台应用,以软件包的形式提供。对文件目录作了优化。增加了文件模块和内存管理模块,抽象了文件的读写和内存操作,便于扩展文件系统和动态管理库。增加了基于makefile的构建工程作为示例。
  • 2020年,在Linux平台应用。
  • 2018年,在VxWorks平台应用。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap