c 语言 解析ini文件为xml

c 读写config.ini 项目需要,今天写了个加载config.ini文件的模块和生成 阅读详情
 
/*
 解析ini文件
 */

#include <stdio.h>
#include <string.h>

int main(void) {

 FILE *fp_in, *fp_out;
 if ((fp_in = fopen("host.ini", "r")) == NULL) {
  perror("");
  return -1;
 }
 fp_out = fopen("host.xml", "w");

 char buff_in[1024];
 char buff_out[1024];
 char auto_add[50];
 int auto_flag = 0;
 int activXml = 0;

 while (fgets(buff_in, 1024, fp_in) != NULL) {

  if (buff_in[0] == 10) {
   if (auto_flag) {
    fputs(auto_add, fp_out);
    memset(auto_add, '\0', 50);
   }
   auto_flag = 0;
   activXml = 0;
  } else if (buff_in[0] == ';') //;Configuration of http
  {
   if (auto_flag) {
    fputs(auto_add, fp_out);
    memset(auto_add, '\0', 50);
   }
   strcpy(buff_out, "<!-- ");
   strncat(buff_out, buff_in + 1, strlen(buff_in) - 2);
   strcat(buff_out, " -->\n");
   auto_flag = 0;
   activXml = 1;

  } else if (buff_in[0] == '[') //[http] --> <http>
  {
   strcpy(buff_out, "<");
   strncat(buff_out, buff_in + 1, strlen(buff_in) - 3);
   strcat(buff_out, ">\n");
   auto_add[0] = '<';
   auto_add[1] = '/';
   strcpy(auto_add + 2, buff_out + 1); //</http>
   auto_flag = 0;
   activXml = 1;

  } else if (buff_in[0] != ' ') {
   char *p = buff_in;
   char *q = buff_out;
   strncpy(buff_out + 1, buff_in, strlen(buff_in) - 1);
   buff_out[0] = '<';
   while (*p != '=') //domain=www.mysite.com
   {
    p++;
    q++;
   }
   *(q + 1) = '>';
   char end[50];
   p = end + 2;
   q = buff_out + 1;
   end[0] = '<';
   end[1] = '/';
   while (*q != '>') {
    *p++ = *q++;
   }
   *p = '>';
   strcat(p, "\n");
   strcat(buff_out + strlen(buff_out), end);
   memset(end, '\0', 50);
   auto_flag = 1;
   activXml = 1;
  }

  if (activXml) {
   fputs(buff_out, fp_out);
  }
  memset(buff_out, '\0', 1024); //清空缓冲区
 }
 fclose(fp_in);
 fclose(fp_out);

 return 0;
}

 


 

C 语言 读取XML文件 一个很经典的算法,采用盲找法,快速的解析XML文件,执行效率很高,XML信息读取只需要从头到尾分析一边,然后将所找到的信息分别存储。 立即下载

相关推荐

纯C语言解析XML字符串含实例

王柱石wzs 纯C语言解析xml字符串,有实例,保证可用,含makefile xmlparse.c xmlparse.h testxml.c 目录:/export/home/chcard/testxml 日志:/export/home/chcard/log testxml.c 是一个测试用例,包含了常用的方法,并有注解 在使用时请保留作者名称 编译测试用例方法:gcc -o testxml testxml.c libxmlparse.a 运行时可输入:testxml 可在/export/home/chcard/log中的.log文件中看到输出的XML内容 路径以实际应用为准

c语言解析xml文档

DOM= Document Object Model,文档对象模型,DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。换句话说,这是表示和处理一个HTML或XML文档的常用方法。有一点很重要,DOM的设计是以对象管理组织(OMG)的规约为基础的,因此可以用于任何编程语言。         Dom技术使得用户页面可以动态地变化,如可以动态地显示或隐藏一个元素,改变它们的属性,增

程序狗的成长之路 9570

纯C语言解析xml字符串

纯C语言解析xml字符串,有实例,保证可用,含makefile xmlparse.c xmlparse.h testxml.c 目录:/export/home/chcard/testxml 日志:/export/home/chcard/log testxml.c 是一个测试用例,包含了常用的方法,并有注解 在使用时请保留作者名称 编译测试用例方法:gcc -o testxml testxml.c libxmlparse.a 运行时可输入:testxml 可在/export/home/chcard/log中的.log文件中看到输出的XML内容 路径以实际应用为准

用C写的XML解析器,良好的中文支持

前段时间用C写了一个XML解析器,过两天要重写成C++版的,现在发上来给大家看看,大家给批评一下,如果要完整的工程源码可以到http://www.9731.org/myfile/TXml-1.0.0-1.rar下载TXml已经不提供了,已经升级为新版的ChaMoRo 解析器了! 

妖嘎冻未条 4427

C语言解析xml,报文

20120725094158 => ******** xTree 结构, 总节点数=10, 节点空间=12 ******** 20120725094158 => 节点号 父节点 节点级 子节数 节点名节点数据 20120725094158 => 0-105 [ROOT][] 20120725094158 => 1010 [QueryDate][20120603] 20120725094158 => 2012 [CYC][] 20120725094158 => 3220 [a1][tt] 20120725094158 => 4 2 2 0 [b1] [dd] 20120725094158 => 5 0 1 2 [CYC] [] 20120725094158 => 6 5 2 0 [a1] [er] 20120725094158 => 7 5 2 0 [b1] [san] 20120725094158 => 8 0 1 0 [CheckFlag] [2] 20120725094158 => 9 0 1 0 [FilePath] [CheckAcct] 20120725094158 =>***************************************************************** 20120725094158 =>===================== 20120725094158 =><?xml version="1.0" encoding="UTF-8"?> 20120725094158 =><?xml version="1.0" encoding="UTF-8"?>12345 20120725094158 =>===申请节点存储空间=4 20120725094158 => 节点数=2 20120725094158 => ******** xTree 结构, 总节点数=2, 节点空间=4 ******** 20120725094158 => 节点号 父节点 节点级 子节数 节点名 节点数据 20120725094158 => 0 -1 0 1 [ROOT] [] 20120725094158 => 1 0 1 0 [Flag] [12345] 20120725094158 =>*****************************************************************

fp_in_op.zip

博客 C#中面向对象编程中的函数式编程 中的演示demo

解析XML文件C实现(垃圾代码)

如标题小括号所示,这是一个垃圾代码,但是还是实现了一部分内容,练习使用,仅供参考。使用编译器生成可执行文件。

qq_32287935的博客 611

c语言解析XML文件

本指南中的例子代码示范主要做到: • 解析文档 • 取得指定元素的文本 • 添加一个元素及它的内容 • 添加一个属性 • 取得一个属性的值

【程序练习】——ini格式转换为xml格式

;Configuration of http [http] doamin=www.mysite.com port=8080 cgihome=/cgi-bin   ;Configuration of db [database] server = mysql user = myname password = toopendatabase 转换为: 1 &lt;!-...

weixin_34174422的博客 268

ArcGIS+PLUS+InVEST三件套实战:从零搞定土地利用变化与碳储量预测(附完整数据包)

本文详细介绍了如何整合ArcGIS、PLUS模型和InVEST模型,构建土地利用变化与碳储量预测的完整研究流水线。通过多情景模拟和生态系统服务评估,提供从数据准备到结果验证的实战指南,助力研究者高效完成生态评估项目。

weixin_30399821的博客 543

PCB压合原理与工艺全流程深度解析

PCB压合是多层印制电路板制造中的核心工序,其本质并非简单物理叠加,而是高分子树脂流动、玻璃布应力释放、铜箔热膨胀及界面能调控的协同过程。理解压合原理,需掌握温度-压力-时间三维曲线动态关系;优化工艺流程,须兼顾叠板精度、热压参数匹配与冷却策略;关键影响因素如半固化片(PP)选型、铜箔表面处理、设备温场均匀性、结构对称性、环境湿度及操作手法,共同决定层间结合力、翘曲度与孔壁质量。本文围绕PCB压合原理、工艺流程、关键影响因素三大维度展开,融合IPC标准、实测数据与产线案例,为工艺工程师、NPI人员及设备维护

weixin_29191081的博客 253

实现一个简单的INI配置文件解析器

INI配置文件解析器实现摘要 📝 本文介绍了一个轻量级INI配置文件解析器的实现方案。INI格式由节(section)、键(key)和值(value)组成,广泛应用于软件配置。解析器核心功能包括: 核心结构:采用字典嵌套存储配置数据,顶层为节名,下层为键值对 解析流程: 逐行处理文件内容 跳过注释和空行 识别节声明([section]) 提取键值对(key=value) 扩展功能:支持类型转换、默认值设置和配置保存 代码实现:提供Python示例代码,包含解析、读取和保存功能 该解析器可简化配置管理,处理

always_TT的博客 437

uniapp开发AndroidAPP集成支付宝支付及问题处理(商家订单参数异常等),集成微信小程序支付及问题处理(运行真机调试白屏)

2、选择支付宝支付,调用支付接口唤起支付宝支付。

qq_16785561的博客 3486

libxml2 获取每个节点的值

#include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;libxml2/libxml/xmlmemory.h&gt; #include &lt;libxml2/libxml/parser.h&gt; static char nodesXml[30][30] =...

东湖畔 634

华为OD机试 - 战士技能规划设计 - 数组(Python/JS/C/C++ 新系统 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。你为一款动作游戏设计战士角色的技能:战士每个技能会消耗不同能量,释放技能有 2 个约束:连续释放技能数量不能超过 m 个,技能能量总和不能超过能量上限 k;如果超过则必须中断当前技能,进入调息状态(即分段)。战士有一项爆发技巧:在单次战斗中有一次

学Java,找哪吒 226

15、z/OS 优化配置与迁移实践

本文详细探讨了z/OS环境的优化配置与迁移实践,涵盖DASD存储库管理、用户目录更新、环境更新意义以及不同场景下的迁移案例。通过单笔记本系统和服务器级机器的实例,展示了迁移流程和关键要点,包括DASD文件创建、设备映射更新、系统重启初始化以及数据备份等步骤。文章还总结了迁移过程中的注意事项,并展望了未来z/OS优化的发展趋势,为z/OS系统的稳定运行和高效管理提供了实用指导。

zzz56的博客 129

.ini文件转换为.xml文件

config.ini文件#config of network 有关网络的配置信息 !network ip=192.168.11.6 port=8000 home-path=/home/admin/ #config of database 有关数据库的配置信息 !database server=oracle user=admin password=123456 config.xml文

qisefengzheng的专栏 总有一天你将破蛹而出 1212

在虚拟机中对阿克曼转向车进行导航及避障的仿真测试

一、    在我使用rosdep install teb_local_planner去安装teb_local_planner的时候,报错:Command ‘rosdep’ not found, but can be installed with:sudo apt install python3-rosdep2    我花大半个月好不容易建立起的一系列ROS环境,被python3-rosdep2这条万恶的语句连同ROS一起给我删了。。。悲伤来的那么猝不及防    随着ROS版本的迭代,相关资料很多都不再适用

慕羽★的博客 3806

minIni - a minimal INI file parser

minIni-最小的INI文件解析器 minIni是一个程序员的库,用于在嵌入式系统中读取和写入“ INI”文件。minIni占用很少的资源,具有确定的内存占用空间,并且可以针对各种文件I / O库进行配置。minIni提供了用于从INI文件中读取,写入和删除密钥的功能,全部功能都用830行C语言的(注释)源代码(1.2版)(该代码也用C++编译,并带有包装器类)。 minIni的主要用途是在运行RTOS(甚至没有任何操作系统)的嵌入式系统上使用。minIni要求这样的系统提供一种存储和文件I...

hefangchi的专栏 2404

34、高效探索柔性蛋白质环构象空间的算法

本文介绍了一种高效探索柔性蛋白质环构象空间的算法,通过种子采样和变形采样两种技术,同时满足运动学闭合和避免空间位阻冲突的约束条件。种子采样能够在闭合无冲突构象空间中广泛生成构象,而变形采样则可以对“有趣”区域进行更密集的探索。实验结果表明,这两种方法在不同大小和受限程度的蛋白质环上均表现出色,运行时间在可接受范围内。相关算法已集成到工具包LoopTK中,可在https://simtk.org/home/looptk获取。

moon9的博客 127

高通平台开发系列讲解(USB篇)MBIM协议详解

📢本文主要介绍高通平台USB网卡MBIM协议。

内核笔记 5438

C语言开源库iniparser解析ini文件

使用 iniparser 库的应用程序可以很方便地读取和解析INI文件中的配置信息,大大简化了对配置文件的处理工作,降低了程序的开发复杂度。由于其开源属性,开发者可以根据自己的需求自由使用、研究和改进该库。

new9232的博客 4103

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

JSON,XML,INI配置文件的区别与使用

正常的应用程序在启动时通常需要从配置文件中恢复配置数据。这些配置文件的格式有很多种,如INIXMLJSON等。在本文中,我们将重点介绍,它是一种轻量级的数据交换格式。

carolinas的博客 2178

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

一文告诉你Linux下如何用C语言实现ini配置文件的解析和保存

INI(InitializationFile)文件是一种简单直观的数据存储格式,常用于配置应用程序的初始化设置。这种文件通常包含若干个节(section)和键值对(key-valuepairs)。INI文件的每一部分都是自描述性的,易于阅读和编辑,使得非程序员也能轻易理解并修改配置参数。INI文件因其简单易用性而在许多编程语言中广泛应用,尤其是在Windows操作系统中,很多应用程序都采用INI文件作为配置文件。

一口Linux的专栏 1392
上一篇: 检测子进程的结束返回状态
下一篇: vfork为什么会出现死循环
MrBugYang
博客等级 码龄18年 21粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值