VC++ XML读写随笔【一】xml基本格式

VC++ INI文件操作全解析:从API到封装类与MFC实战 在Windows桌面应用开发中,配置信息的持久化存储是一个基础且关键的需求。INI文件作为一种轻量级、结构清晰的文本格式,通过简单的[Section]和Key=Value结构,为程序设置提供了直观的存储方案。其核心原理在于Windows系统原生提供的一组Profile API函数,如WritePrivateProfileString和GetPrivateProfileString,使得VC++开发者无需引入第三方库即可实现零依赖的配置读写,这对于需要兼容老旧系统或控制运行时库依赖的项目极具技术价值。在实际工 阅读详情
XML(Extensible Markup Language)是一种标记语言。
他被广泛运用的各种数据存储,软件储存结构化数据。

优点,可读性强;    缺点:占用空间太大,他以文本形式储存,不适合很多的数据。


基本语法介绍

<?xml version="1.0" encoding="GBK"?>  <!--声明部分-->
<root>
	<host> www.baidu.com </host> <!--内容-->
	<port>8080</port>
</root>

声明部分储存版本号和编码格式 version(版本)  encodin(编码格式)

xml由声明和内容构成。

XML的元素

<我是一对>我是内容</我是一对>

以“/”区分一对,中间是数据


元素可以包裹其他元素,比如下边contact元素包裹了两个"phone"元素。

元素可以添加属性,Contact元素就有"id"和"page"属性。

属性值唯一,不可重复。属性之间用空格分割。

元素可以重名,比如同一元素下两个一样的"Phone"元素。

<?xml version="1.0" encoding="GBK"?>
<root>
<Contact id="1001" page="1"> <!--我是含有两个数据的元素-->
            <Phone>123456</Phone>
            <Phone>654321</Phone>
</Contact>

<Contact id="1001" page="1"> <!--我是没有数据的元素,可以重名-->
</Contact>

</root>


XML的文件结构

<root>是根元素,他包裹一切,所以整个XML就是树形结构,root元素包裹自建元素,元素包裹数据

处于一元素的称为兄弟元素,兄弟元素是可以重名的,比如一个人有两个手机号。

<Contact id="1001" page="1">
            <Phone>123456<Phone>
            <Phone>654321<Phone>
</Contact>


形式良好 与 内容合法的

形式良好意味语法正确,但这不代表可以使用。

如果内容不符合你软件读写规范,那内容就是不合法的。

比如你在<Phone></Phone>写入字母,没人的手机号是字母。




VC++开发者的XML操作库选择指南.zip 可扩展标记语言(XML)是一种标记语言,它定义了一套规则来创建可自描述文档。在VC++开发中,XML扮演了多种角色,尤其是在数据交换、配置文件和数据存储等方面。层级结构:XML文档采用树状层级结构,这种结构适合描述具有层级关系的数据。每个XML元素都可以包含子元素,从而形成嵌套的关系。标记语言:XML是一种标记语言,允许开发者自定义元素标签。这使得XML非常灵活,可以根据应用程序的需求来设计数据模型。文本格式:XML是纯文本格式的,可以使用文本编辑器阅读和编辑。 阅读详情

相关推荐

开源C++ MFC实现Excel文件读写功能的完整类库项目

为了统一管理.xls与.xlsx的解析逻辑,需构建各自的解析引擎,并通过中间层完成数据标准化输出。public:提供一致的上层调用入口。

weixin_35815766的博客 1259

XML编程实例

 前段时间,由于工作的需要,利用到了XML,所以对其进行了一些简单的研究。在此愿把一些心得写出来,与各位分享,不对的地方还望多多包涵。      1.什么是 XML?    首先,我想各位应该都已经大概知道什么是XML了。如果,你对什么是XML还没有一个概念的话,你可以看一些相关的材料,我就不多说了。      2.为什么要用XML?    其实,刚开始我也不是很明白,后来在工作中才慢慢意识到。首...

weixin_34126215的博客 234

VC++中JSON数据处理及网络交互实践

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,但JSON是独立于语言的,几乎所有的编程语言都有支持JSON的解析库。VC++,即Visual C++,是微软推出的一款集成开发环境(IDE),广泛应用于Windows平台下的C++应用程序开发。本章将详细介绍如何在VC++开发环境中进行项目配置,以及C++语言的基础知识、类与对象、模板和标准库的应用。

weixin_30951515的博客 968

VC操作XML的基本流程

基本概念  XML的编程模式  前面我们说过,XML对树的表达能力是很强大的,我们完全可以把一个XML文档用一个树来表达,对于文档的操作就是对树的操作,这就是DOM(文档对象模型)。然而,DOM对XML文档的处理有许多的毛病,比如速度慢等,于是有了另一种模型SAX.  下面,我们分别详细的对这两种模型进行说明。   DOM模型  DOM模型需要对整个XML文档进行扫描

Jeremy_W的专栏 1898

VC++中实现数据保存到Excel的详细教程

htmltable {th, td {th {pre {简介:在VC++开发环境中,通过使用Microsoft Office的自动化接口和COM技术,可以实现将数据保存到Excel文件中。这包括创建Excel实例、操作工作簿和工作表、写入数据、保存和关闭操作以及异常处理等步骤。此外,为了性能优化,还可以考虑使用Open XML SDK或第三方库如libxl、Apache POI等技术。

weixin_31938351的博客 981

Windows C++开发用SAMA V2.0功能模块集:日志窗口、注册表读写、XML解析与文件扫描一体化源码包

一套开箱即用的Windows平台C++功能模块集合,专为VC++桌面工具开发设计。包含日志窗口管理(SAMALogWindow)、注册表操作(RegistryKnobImpl)、XML配置解析(XMLParserImpl)、文件系统项统一管理(FSItemMgr)、资源加载(ResourceImpl)、调试窗口控制(DBGWImpl)、字符串模糊匹配(StringMatchServiceImp)、多线程安全文件扫描(ScanFileImpl)等核心组件。所有模块均以标准.cpp/.h形式提供,含配套基础文件

l3m4n的博客 176

VC操作XML文件

这几天,用VC写一个东西,要用到XML,可是网上XML的东西非常少,还大部分是JavaScript方面的。没办法,只能一点点查,一点点试,终有所获。XP+VC6 首先在系统中加入: #import "msxml4.dll" using namespace MSXML2; 然后就可以操作XML文件了。 1、创建xml文件  ::CoInitialize(NULL); //

tianyu的专栏 - Linux site:blog.youkuaiyun.com/wishfly 2669

VC++实现对xml文件的操作

在VC++平台下,实现对XML文件的操作,只要简单引用文件即可使用。

用VC++访问XML文件

用微软的 DOM, MSXML4 //引入msxml4.dll #import "C:/WINNT.0/system32/msxml4.dll" //创建XMLDOMDocument指针 MSXML2::IXMLDOMDocumentPtr pXMLDoc; // 初始化COM接口 ::CoInitialize(NULL); // 通过智能指针创建一个解析器的实例 HRESULT hr; hr =

笔者从事电信媒体开发多年,愿意将多年的开发经验分享给同行 1675

【第六届起重机创意大赛国一作品——资料分享】

文章目录前言一、比赛内容分析二、确定方案与作品模型1.方案简图2.作品模型三、电控部分控制思路单片机选择与资源分配拓展板的设计接线与走线代码分享总结

qq_19308801的博客 7783

CS算法实战:用MATLAB从零实现SAR点目标成像(附完整代码)

本文详细介绍了如何使用MATLAB从零实现SAR点目标CS成像算法,涵盖Chirp Scaling(CS)算法的核心理论、距离徙动校正(RCMC)和方位压缩等关键步骤。通过完整的代码示例和实战技巧,帮助读者掌握SAR成像处理算法,提升遥感图像处理能力。

weixin_29211309的博客 179

vc++6.0,mfc项目,读取xml文件

Pinyin Name="翟">ZhaiZengQinZha用到CMarkup 类。

2301_76474805的博客 689

跨平台烧录实战:RKDevTool在Windows/Linux/MacOS下的统一与差异

本文详细解析了RKDevTool在Windows、Linux和macOS三大操作系统下的固件烧录实践,重点介绍了RK3576开发板的环境配置、工具链选择、烧录模式切换及常见问题解决方案,帮助开发者构建稳定可靠的跨平台烧录工作流。

cnn8visionary的博客 206

VC++中利用MSXML解析XML、使用DOM写XML文档

CoInitialize(NULL); // 初始化COM。 CComPtr<IXMLDOMDocument> spXMLDOM; // 创建解析器实例。 HRESULT hr = spXMLDOM.CoCreateInstance (__uuidof(DOMDocument)); VARIANT_BOOL bSuccess = false; // 装载XML文档。 hr = spXMLDOM->load(CComVariant(L"xmlfile.xml"), &..

thanklife的专栏 1959

STM32玩转C++:从Arduino库到HAL库的封装思路(Clion环境配置指南)

本文介绍了如何在STM32开发中使用C++封装HAL库,从Arduino风格过渡到更高效的开发方式。通过Clion环境配置指南和详细的代码示例,展示了如何利用C++的面向对象特性简化GPIO、UART等外设操作,提升代码可读性和开发效率。特别适合嵌入式开发者和从Arduino转向STM32的开发者。

weixin_33737134的博客 335

[DevExpress]GridControl拖拽行记录排序

DevExpress的GridControl拖拽行记录排序需求效果代码 需求 现在用户对按钮点击排序不满意了, 希望拖拽排序。 重载GridControl控件,对MouseMove、MouseDown、MouseUp事件修改一下。 效果 代码 using System; using System.Drawing; using System.Windows.Forms; using xiaoid.forms; using System.Data; using System.Collections.Gener

德仔 1562

VC++ XML读写随笔【三】tinyxml读取xml文件教程

接着上一篇,我们来读取这样一共xml文件: &lt;?xml version="1.0" encoding="GBK" ?&gt; &lt;root&gt; &lt;host checked="true" station="1001"&gt;www.baidu.com&lt;/host&gt; &lt;client&gt;

nullccc的博客 374

YOLOv12 改进 | Backbone改进 3

将CSP中的简单拼接改为可学习的特征选择门控,动态决定哪些特征流向下一层,同样再写这篇。:相比静态CSP的固定50/50分割,门控机制可学习0.3:0.7等最优比例。在输入端加入轻量SR模块,对下采样后的特征进行超分恢复,提升小目标检测能力。(小目标): 从 0.51 AP → 0.63 AP (+24%):采用ESPCN的高效亚像素卷积,避免传统插值的信息损失。:从通道级(SE)到空间级(Spatial)的多粒度控制。:结合浅层细节和深层语义,恢复小目标的纹理信息。

u012133341的博客 842

VC++通过COM自动化读写Excel:从原理到实战的完整指南

COM(组件对象模型)是Windows平台上实现软件组件间互操作的核心技术,其原理基于二进制接口标准,允许不同语言编写的程序相互通信。在桌面应用开发中,通过COM自动化技术操控Office套件,能实现深度集成与功能完整调用,具有极高的技术价值。这一技术尤其适用于需要原生性能、避免额外运行时依赖的C++桌面应用场景,如财务软件、数据报表工具等。本文聚焦于使用VC++通过COM自动化读写Excel文件这一具体实践,详细解析了从初始化、对象模型操作到批量数据处理与格式设置的全流程,并针对进程残留、多线程安全等常见

weixin_30096975的博客 260

红队内网攻防渗透:内网渗透之内网对抗:实战项目&VPC1打靶&PHP-RCE&三层代理路由&防火墙上线&密码喷射&域控提权

上面已经抓取到了密码,但是我们通过拓扑分析看,要想上线win10只能通过正向shell,因为win7的防火墙是开的,win10反向主动连接肯定入站规则拦截,而win10自己没有开防火墙,所以win7主动正向连接就可以上线。win7开启了防火墙,入站规则肯定是会拦截我们的请求的,所以我们需要反向上线,让win7主动来连接我们。这里扫描发现是存在ms17010漏洞的,但是想上线192.168.2.142的话,我们没有路由是上线不了的,这里有两种办法:一种msf直接生成后门,另一种cs移植后门到msf。

HACKONE的博客 910

一文搞懂 JavaScript 模块化规范:CommonJS、AMD、ES6 Module

在现代 JavaScript 开发中,模块化是提升代码组织性和可维护性的关键。本文深入解析三种主流的模块化规范——CommonJS、AMD 和 ES6 Module。

Allen- 3479

MFC操作XML配置文件的两种方式:DOM 和 MSXML

这几天做VC项目涉及到了创建xml配置文件这方面的问题,纠结了好多天,尝试了N种方法,终于完成了工作任务,现在和大家分享下:  我参考了如下的资料: XML DOM 实例:http://www.w3school.com.cn/example/xdom_examples.asp VC++中操作XML(MFC、SDK):http://www.cnblogs.com/lingyun1120/arc

hediping9811的专栏 4460

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

VS2012 VC++中Excel Unicode读写:COM自动化与字符编码实战

字符编码是数据处理的基础,Unicode作为国际标准,解决了多语言文本的兼容性问题。在Windows平台,程序内存中的宽字符(wchar_t)与外部数据交换时,编码转换是关键。COM(Component Object Model)技术为应用程序间通信提供了标准接口,其BSTR字符串类型原生支持Unicode。通过COM自动化操作Excel,能实现高效、功能完整的数据交互,尤其适合处理包含中文等非ASCII字符的表格。在VS2012的VC++环境中,项目需设置为Unicode字符集,并正确导入Excel类型库

cqbh2011的博客 405

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

c/c++ XML 读写 tinyXML rapidXML slimXML LibXML XMLBooster squashXML

TinyXml读写xml http://blog.youkuaiyun.com/fireway2009/article/details/7322144   linux c xml 读写 http://blog.youkuaiyun.com/zhang_heaven/article/details/7370931 rapidxml,一个快速的xml库,比tinyXML ,slimXML还快

wch.hit的专栏 3245

基于DuiLib与VC++的桌面应用开发实战:从架构设计到性能优化

在桌面应用开发领域,DirectUI作为一种界面自绘技术,通过将控件绘制与系统标准控件解耦,实现了像素级的UI定制能力。其核心原理在于利用GDI/GDI+等图形接口直接渲染界面元素,从而摆脱对原生控件的依赖。这种技术为开发者带来了极高的灵活性和性能优势,尤其适合需要深度定制界面风格、追求极致性能的桌面软件。在工程实践中,结合VC++这一成熟的Windows原生开发工具链,能够充分发挥底层API的调用能力,实现系统级功能集成。本文聚焦于如何利用DuiLib这一轻量级C++开源界面库,解决诸如资源加载失败、运行

weixin_33816946的博客 417

如何用VS2015读取XML文件内容?

步骤一:下载tinyXml类库 C++中读写XML都会用到一个C++库tinyXml类库,这个类库可以直接下载,并解压,得到了一种6个源文件,其中4个cpp文件,2个h头文件。下载地址:https://sourceforge.net/projects/tinyxml/ 将下载好的工程在VS2015中编译运行,生成静态链接库(.lib)。共有4个项目: tinyxml tinyxml...

傻月菇凉的博客 6622
上一篇: VS2017 DLL动态库使用教程【七】为什么我的程序不能在别人电脑运行
下一篇: VC++ XML读写随笔【二】tinyxml创建写入xml文件教程
崔佳宇_
崔佳宇_ 优质创作者: 嵌入式与硬件开发技术领域 优质创作者: 嵌入式与硬件开发技术领域
博客等级 码龄10年 1万+粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值