CMarkup类操作Xml的示例分析
发表于:2025-11-17 作者:千家信息网编辑
千家信息网最后更新 2025年11月17日,这篇文章给大家分享的是有关CMarkup类操作Xml的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、下载Markup.cpp 和 Markup.h二、将此两个文
千家信息网最后更新 2025年11月17日CMarkup类操作Xml的示例分析
这篇文章给大家分享的是有关CMarkup类操作Xml的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
一、下载Markup.cpp 和 Markup.h
二、将此两个文件放置于工程目录下
三、在需要用到CMarkup的地方 #include "Markup.h"
当然VC中还需要配置一下环境
在VC6.0下:
a.在Markup.cpp的顶端加上 #include"stdafx.h" 或者
b.关闭Markup.cpp的预编译头设置,具体方法如下:
Project->Setting 弹出ProjectSetting对话框,在左边的文件树下选择Markup.cpp,然后在 "Settings for" 下拉框下选择 "All Configurations",选择 C/C++标签页,
接着在Category下拉框下选中 "Precompiled Headers"选项,选中下面的"Not Using Precompiled Headers." 单选按钮即可
CMarkup的基本使用:
例如要读取如下UserInfos.xml的内容
WangYao 25 Hisin 27
源代码如下:
CMarkup xml; bool flag; //加载Xml文件 flag = xml.Load("d:\\UserInfos.xml"); if (!flag) { AfxMessageBox(TEXT("加载d:\\UserInfos.xml失败,请检查")); return; } //定位到Root Elem xml.ResetPos(); flag = xml.FindElem("UserInfos"); //Root Elem为 if (!flag) { return; } xml.IntoElem(); //进入根节点 while(xml.FindElem(TEXT("UserInfo"))) { xml.IntoElem(); //进入 //获取name节点数据 flag = xml.FindElem(TEXT("name")); if (flag) { CString cstrName; cstrName = xml.GetData(); AfxMessageBox(cstrName); } //获取age节点数据 xml.ResetMainPos(); //保证不管name节点和age节点的顺序如何,都能找到age节点 flag = xml.FindElem(TEXT("age")); if (flag) { CString cstrAge; cstrAge = xml.GetData(); AfxMessageBox(cstrAge); } xml.OutOfElem(); //跳出 } xml.OutOfElem(); //跳出根节点当然实现同样的功能也可以不进入UserInfo节点,源码如下,请仔细对比
xml.IntoElem(); //进入根节点 while(xml.FindElem(TEXT("UserInfo"))) { //获取name子节点数据 flag = xml.FindChildElem(TEXT("name")); if (flag) { CString cstrName; cstrName = xml.GetChildData(); AfxMessageBox(cstrName); } //获取age子节点数据 xml.ResetChildPos(); //保证不管name子节点和age子节点的顺序如何,都能找到age子节点 flag = xml.FindChildElem(TEXT("age")); if (flag) { CString cstrAge; cstrAge = xml.GetChildData(); AfxMessageBox(cstrAge); } } xml.OutOfElem(); //跳出根节点Tips:
1.IntoElem与OutOfElem方法应成对使用
2.关于重置xml的Pos的函数
| ResetPos | Resets the current position to the start of the document |
| ResetMainPos | Resets the current main position to before the first sibling |
| ResetChildPos | Resets the current child position to before the first child |
3.SavePos 与 RestorePos 复原xml Pos
| SavePos | Saves the current position with an optional string name using a hash map |
| RestorePos | Goes to the position saved with SavePos |
比如:
...xml.SavePos(Text("abc"));OpXml(xml); //该函数可能会改变xml的Pos,则可以利用SavePos与RestorePos复原该函数执行前xml的Posxml.RestorePos(Text("abc"));...感谢各位的阅读!关于"CMarkup类操作Xml的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
节点
数据
内容
函数
文件
选择
示例
分析
方法
更多
篇文章
顺序
下拉
保证
不错
实用
两个
功能
地方
对话框
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库应用开发
微软的软件开发开发平台
地图制图学数据库的建立实验报告
车辆管理系统数据库页面运营结果
中国网络技术相关的
数据库原理中如何插入数据
软件开发如何质量控制
日本人评价京都动漫服务器
幸福大陆怎么换服务器
软件开发方法发展回顾与展望
火星输入法软件开发
网络安全和信息化委干什么的
护苗网络安全课好看
it企业 网络安全法
数据库表创建关键词
前端连接数据库实现增删改查
塘沽区安卓软件开发
服务器安全狗装了不能远程
嵩山网络安全人才
支架设计软件开发
电子邮箱有几个服务器
无锡江苏大容量服务器代理厂家
怎么把数据库备份为低版本
引文索引类数据库
如何给基岩版服务器添加光影
如何获取奥维企业服务器
河北品质软件开发介绍
该问题应该在数据库三级模式
服务器巨响
中科曙光服务器bios固件