Markup.cpp和Markup.h文件内容在下一篇博客中

首先添加Markup.cpp和Markup.h到工程
在用使用xml的.cpp文件中添加头文件#include "Markup.h"
设置Markup.cpp的Project Setting 中c/c++在分类预编译的头文件中选择
“不使用预补偿页眉”

如果是在非MFC工程中使用类CMarkup
编译如果报错
fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include 
解决方法:
#ifdef _WINDOWS_
#undef _WINDOWS_
#endif

编译如果报错
error LNK2005: _DllMain@12 已经在 dllmain.obj 中定义
error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMTD.lib(new.obj) 中定义
error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已经在 LIBCMTD.lib(dbgdel.obj) 中定义

解决方法:
则设置工程Porject Setting中的Link,在分类input输入中的对象/库模块最前面添加Nafxcwd.lib Libcmtd.lib
在忽略库中填写LIBCMT uafxcwd.lib Libcmtd.lib
这样就能在非MFC工程中用了

现在要创建的xml文件如下:
<?xml version="1.0" ?>
<matrixs>
        <matrix id="1" type="0" ip="192.168.16.64" port="5050" user="vorx" password="" serv_port="5700">矩阵</matrix>
        <matrix id="5" type="0" ip="192.168.16.65" port="5050" user="vorx" password="" serv_port="6000">矩阵</matrix>
        <matrix id="6" type="0" ip="192.168.16.66" port="5050" user="vorx" password="" serv_port="6100">矩阵</matrix>
</matrixs>

代码如下

利用类CMarkup新建一个xml文件
//g_sFilefullPath.c_str()为要保存xml的路径,获取路径的方法在第六篇博客中
if(GetFileAttributes(g_sFilefullPath.c_str()) == 0xffffffff) //文件不存在时
{
CMarkup xml;
xml.SetDoc("<?xml version=\"1.0\" ?>\r\n");
xml.AddElem("matrixs");
xml.Save(g_sFilefullPath.c_str());
}
//加载xml文件,这时如果用到遍历一定要注意指针当前定义的位置
CMarkup xml;
BOOL bLoadXml = FALSE;
bLoadXml = xml.Load(g_sFilefullPath.c_str()); //加载xml文件
if (bLoadXml)
{
xml.ResetMainPos();//将指针定义到第一个顶级标签的上一个位置<文本>
xml.FindElem();//将将指针定义到第一个顶级标签
while(xml.FindChildElem("matrix"))
{
int matrixID = (int)atoi(xml.GetChildAttrib("id"));
if (m_InsertMatrixID == matrixID)
{
MessageBox("此ID已存在,请重新输入","提示",MB_OK);
return;
}
}
//遍历完后,指针在文件结尾,这时要将指针重新定位到开头才能进行下面的遍历
xml.ResetMainPos();
xml.FindElem();
while(xml.FindChildElem("matrix"))
{
string matrixIP = xml.GetChildAttrib("ip");
if (strcmp( m_InsertMatrixIP, matrixIP.c_str()) == 0)
{
MessageBox("此IP地址已存在,请重新输入","提示",MB_OK);
return;
}
}
xml.ResetMainPos();
xml.FindElem();
while(xml.FindChildElem("matrix"))
{
int matrixSerPort = (int)atoi(xml.GetChildAttrib("serv_port"));
if (m_InsertServerPort == matrixSerPort)
{
MessageBox("此服务代理端口已存在,请重新输入","提示",MB_OK);
return;
}
}
//为xml文件添加子元素
xml.AddChildElem( "matrix", "矩阵" );//在顶级标签下面添加子标签
//设置属性
xml.SetChildAttrib("id",m_InsertMatrixID);
xml.SetChildAttrib("type",m_InsertType);
xml.SetChildAttrib("ip",m_InsertMatrixIP);
xml.SetChildAttrib("port",m_InsertMatrixPort);
xml.SetChildAttrib("user",m_InsertMatrixUser);
xml.SetChildAttrib("password",m_InsertMatrixPassword);
xml.SetChildAttrib("serv_port",m_InsertServerPort);
xml.Save(g_sFilefullPath.c_str());
}
 //删除子节点
CMarkup xml;
xml.Load(g_sFilefullPath.c_str());
xml.ResetMainPos();
xml.FindElem();
while (xml.FindChildElem("matrix"))
{
int idAttribute=(int)atoi(xml.GetChildAttrib("id"));
if (idAttribute==nGetId)
{
xml.RemoveChildElem();

用CMarkup类创建xml文件的方法相关推荐

  1. java实体类转换xml_简单实体类和xml文件的相互转换方法

    最近写一个题目,要求将一组员工实体类转换成xml文件,或将xml文件转换成一组实体类.题目不难,但写完感觉可以利用泛型和反射将任意一个实体类和xml文件进行转换.于是今天下午立马动手 试了下,做了个简 ...

  2. python读xml文件生成.h头文件_Python创建xml文件示例

    Python创建xml文件示例 这里有新鲜出炉的 Python 入门,程序狗速度看过来! Python 编程语言 Python 是一种面向对象.解释型计算机程序设计语言,由 Guido van Ros ...

  3. android xml文件放在哪里,android 创建 xml文件

    android创建xml文件的方法. 要操作android的外部存储,所以要在AndroidManifest.xml文件中添加权限. 首先要创建一个XmlSerialize对象. 并创建一个文件,并打 ...

  4. VC解析XML--使用CMarkup类解析XML

    经过今天尝试MFC解析XML串,也算有了不少收获,总结一下.          我是使用的CMarkup类对XML进行操作.                    CMarkup好象都是先从一个xml ...

  5. C#代码创建Xml文件

    扩展标记语言XML(eXtensible Markup Language),是由W3C组织制定的.做为用于替代HTML语言的一种新型的标记语言,XML内部有着很多基本标准,XML就是通过与这些相关标准 ...

  6. C#中常用的几种读取XML文件的方法

    XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨平台的,依赖于内 ...

  7. Android -- 创建XML文件对象及其序列化, pull解析XML文件

    1. 创建XML文件对象及其序列化 示例代码:(模拟以xml格式备份短信到SD卡) SmsInfo.java, bean对象 /*** 短信的业务bean* @author Administrator ...

  8. Android程序解析xml至文档中,Android开发之DOM解析xml文件的方法

    本文实例讲述了Android中DOM解析xml文件的方法.分享给大家供大家参考,具体如下: 一.在assets文件中写xml文件 李明 30 李向梅 25 二.在service中写一个DOM解析的操作 ...

  9. 使用Javascript创建XML文件

    使用Javascript创建XML文件 出处:http://blog.csdn.net/sutao_713/article/details/1908431          在客户端创建XML文件可以 ...

最新文章

  1. 中国大学单身 (民间)排行榜!你上榜了没
  2. React开发(272):try...catch..捕获
  3. 蚂蚁链发布新一代网络平台「FAIR」 区块链进入隐私计算原生时代
  4. 为什么要重写hashCode()方法和equals()方法以及如何进行重写
  5. sqoop导出数据单mysql_sqoop导出hive表数据到mysql
  6. #region的快捷键+++从一个页面中弹出一个新窗口,当新窗口关闭时刷新原窗口!...
  7. Codeforces 659B Qualifying Contest【模拟,读题】
  8. Spring自学教程-AOP学习(五)
  9. cd oracle home/dbs,Oracle专家高级编程学习笔记
  10. 小规模45万免税,免的是增值税,没有企业所得税!
  11. cad线性标注命令_CAD线性标注快捷键是什么,怎么使用
  12. 云桌面服务器+搭建,搭建自己的云桌面服务器
  13. http://www.cnblogs.com/longteng1991/archive/2013/06/13/3131739.html#
  14. 破解ISAPI_Rewrite3.1以及相关知识
  15. 如何将eml格式转换成word文档
  16. 浅谈IT企业人力资源流失现状与对策
  17. 中国大学MOOC北京大学唐大仕老师《Java程序设计》源码分享
  18. php试题判断ip是否合法,php检测IP地址是否合法的方法
  19. kubernetes简介
  20. python调用百度网盘开放平台接口上传本地文件

热门文章

  1. Spring MVC 自定义验证器示例
  2. Spring @RequestMapping注解示例
  3. Given two binary trees, write a function to check if they areequal or not.
  4. 360浏览器没有声音_你用的浏览器好用吗?该国产电脑浏览器,极速、安全,值得使用...
  5. 今天被公司安排给候选者进行初面,分享我的6道面试题
  6. 一篇总结得超全的前端进阶文章!入门、技巧、方法、书籍、网站...一步到位!
  7. mysql 局域网存储_MySQL 存储过程
  8. springboot 读写分离_springboot +ShardingJDBC 读写分离
  9. linux 移动一行到指定行,linux – 移动行以跟随文件中的另一行
  10. mysql scale,Mailchimp Scale:a MySQL Perspective