CMarkup类操作Xml的示例分析
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章给大家分享的是有关CMarkup类操作Xml的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、下载Markup.cpp 和 Markup.h二、将此两个文
千家信息网最后更新 2025年02月01日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安全错误
数据库的锁怎样保障安全
苏州企业软件开发价格
sh脚本从另一台服务器获取文件
用友u8恢复数据库提示连接失败
全国计算机网络安全知识竞赛
软件开发选择什么笔记本
广州综合服务管理软件开发
太仓网络技术咨询
网络安全内测工程师
java软件开发专升本都考什么
黄山手机软件开发哪家好
云数据库最大连接数
服务器带外管理6
两亿求职者简历数据库泄露的原因
湘中软件开发公司
软件开发项目审批
阿哲网络安全大使
iOS文件传输 服务器
网络安全员学习心得体会
世界技能大赛网络安全山东
联想r650服务器管理口
数据库怎么暂时关掉
mfc不连接数据库
创建链接服务器
简单快递驿站信息数据库设计
学校网络服务器崩溃
mysql服务器连接失败
积极防范化解网络安全风险隐患
学软件开发网站制作可以吗
目前服务器主要有哪几种类
国泰安怎么查并购数据库