TinyXML-2解析XML数据

本文介绍了TinyXML-2在C++中用于解析XML数据的基本操作,包括配置、读取文件、解析XML字符串。文章对比了XML与JSON,指出XML在数据存储和检索上的优势,而JSON在网络数据传输上更优。TinyXML2是一个小巧易用的XML解析库,通过示例代码展示了如何使用TinyXML2进行XML解析。

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

声明

本文例子源自在C++中使用TinyXML2解析xml一文,其余部分来源于网络搜集,难免疏漏,敬请随意吐槽。

XML以及JSON

什么是XML

XML
根据Wikipedia-XML的说法:

可扩展标记语言(英语:eXtensible Markup Language,简称:XML),是一种标记语言。标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,既可以选择国际通用的标记语言,比如HTML,也可以使用像XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。XML是从标准通用标记语言(SGML)中简化修改出来的。它主要用到的有可扩展标记语言、可扩展样式语言(XSL)、XBRL和XPath等。
XML设计用来传送及携带数据信息,不用来表现或展示数据,所以XML用途的焦点是它说明数据是什么,以及携带数据信息。

我个人对XML了解不多,这次使用也是用来保存机器学习生成的模型,感觉上用XML来传输存储信息是很方便的。

XML和JSON

JSON是另一种可以用来传输货保存信息的格式。根据Wikipedia-JSON的说法:

JSON(JavaScript Object Notation)是一种由道格拉斯·克罗克福特构想设计、轻量级的资料交换语言,以文字为基础,且易于让人阅读。尽管JSON是Javascript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。

关于XML和JSON的比较,Wikipedia上如是说:

JSON与XML最大的不同在于XML是一个完整的标记语言,而JSON不是。这使得XML在程式判读上需要比较多的功夫。主要的原因在于XML的设计理念与JSON不同。XML利用标记语言的特性提供了绝佳的延展性(如XPath),在数据存储,扩展及高级检索方面具备对JSON的优势,而JSON则由于比XML更加小巧,以及浏览器的内建快速解析支持,使得其更适用于网络数据传输领域。

关于这一问题,在国内的知乎上也有各种讨论,比如:《为什么XML这么笨重的数据结构仍在广泛应用》《为什么都反对 XML 而支持使用 JSON》。总结下来,基本也就是各有优势,具体选择还是需要根据需要判断。

XML解析库

各种语言都有XML的解析方案,Java和Python都有方便的解析库。对于C++也有多种解析方案,可以参考《C++解析xml有什么好用的轮子》《What XML parser should I use in C++?》。也有人做了一张图:

CXML

我最终选择了TinyXML2,使用挺方便简单。

话说Json似乎有个RapidJSON很好用(传说、传说而已),有空可以尝试一下。

TinyXML2

配置TinyXML2

TinyXML是一个C++的开源解析XML的解析库,根据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值