XML理解, XML与ini比较

本文对比了XML和ini配置文件的使用,指出ini文件操作简单但参数联系弱,易出错,而XML则能更好地描述数据结构,支持复杂层次关系,适合序列化对象。XML作为一种数据格式,被不同行业采用,其标签和属性根据行业需求定制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XML理解, XMLini比较

1. ini文件

ini文件就是用来记录一些参数或者说配置使用的操作很方便

但也有缺点就是ini格式记录的参数在ini文件中的联系是很弱的参数间的联系需要通过代码来完成但容易出错.

例如我要记录一个数组的数据ini你可以这样做

[vector]

count  = 4

V1 = "a"

V2 = "b"

V3 = "c"

V4 = "d"

V5 = "e"

你的程序需要这么做

1. 先读取count的值,  

2. 使用一个循环读取V1--V5的值.

3. 把读取到的V1---V5的值填入你自己的数据结构中.

容易出错的地方

1. 如果增加一个V6, count需要跟着修改.(如果遇到很复杂的结构修改一处而引起其他地方也需要修改的话很容易犯错误.)

2. Ini中的参数的关系需要代码来完成如果ini的数据改变了代码可能要变化很大.

3. 如果下面的数据结构在ini中保存怎么做.

struct STTest

{

          std::vector<int> m_vectorInt;

          std::list<double> m_listDouble;

};

struct STGood

{

STTest m_stTest[10];

};

Ini很难把数据结构的层次关系描述出来你必须通过代码实现而且你的解析代码还要跟着ini, ini一但需要变化你的代码就要跟着变, 当到遇上一些复杂的结构时就更复杂了.(因为我做个这样的笨事情!!!!!!!!!!!!!!!!!!!!!!!).再见

2. XML

XML的格式就是一个树结构其标签--属性--值的属性可以很好的描述数据结构甚至可以把变量名也描述出来可以序列化一个对象可以记录传输数据表的记录等等).

记得刚刚接触XML的时候自己借了一本超市行业的XML的书是的就是超市行业的当初我借书的目的是为了学习XML的结构属性标签等所以看那本书根本看不懂因为那本书讲述的并不是XML的格式教程而是讲述超市行业中传输数据是使用XML格式来传输的讲述了其传输的XML的各个标签的意义等.(我借错书了.)

我的理解 XML是一种数据格式是一种存储数据的格式是一种载体而各个行业使用XML, 但是各个行业的XML的标签便签属性是不一样的相当于使用php技术可以做一个行业网站但是各行业的网站的内容是不一样的(使用技术是一样的). 我也可以定义自己的标签, 如果全世界都用你的标签, 那你的标签可以成为标准了偷笑

3. XML的使用

struct STTest

{

       std::vector<int> m_vectorInt;

       std::list<double> m_listDouble;

};

struct STGood

{

STTest m_stTest[10];

};

<structure_def>
	<struct name = "STTest">
		<member type = "std::vector<int>" name = "m_vectorInt">
			<value>0</value>
			<value>1</value>
			<value>2</value>
			<value>3</value>
			<value>4</value>
		</member>
		<member type = "std::list<double>" name = "m_listDouble">
			<value>0.1</value>
			<value>1.1</value>
			<value>2.1</value>
			<value>3.1</value>
			<value>4.1</value>
			<value>5.1</value>
		</member>
	</struct>
	
	<struct name = "STGood">
		<member type = "STTest" name = "m_stTest">
		</member>
	</struct>
</structure_def>


这里就很好的反映了数据结构的层次关系了不过使用代码去解析这个数据结构也是有点痛苦的. XML的层次结构变了代码还是需要修改的


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值