Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5463730
  • 博文数量: 671
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 7310
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-14 09:56
文章分类

全部博文(671)

文章存档

2011年(1)

2010年(2)

2009年(24)

2008年(271)

2007年(319)

2006年(54)

我的朋友

分类: C/C++

2009-02-19 16:49:47

首先到下载CMarkup教学版,解压后里面是一个DEMO,将Markup.h .cpp拷贝并添加到工程中,第一次编译可能会出现预编译错误,解决的方法在Markup.cpp最前面include "stdafx.h",或者关闭预编译。
  以下转自
//----------UserInfo.xml--------------


luo
lin


1。生成UserInfo.xml
CMarkup xml;

xml.SetDoc("\r\n");
xml.AddElem("UserInfo");
xml.IntoElem();
xml.AddElem("UserID","luo");
xml.AddElem("UserID","lin");
xml.OutOfElem();
xml.Save("UserInfo.xml");

2。浏览特定元素
//----查看所有UserID----
CMarkup xml;
xml.Load("UserInfo.xml");

BOOL bFind = true;
xml.ResetMainPos();
while (xml.FindChildElem("UserID");)
{

//此时接点还是父接点
CString strTagName = _T("");
CString strData = _T("");

strTagName = xml.GetChildTagName();
strData = xml.GetChildData();
TRACE("\n---tagName:%s,Data:%s--\n",strTagName,strData);

}

/********************这样也可以******************
CMarkup xml;
xml.Load("UserInfo.xml");
BOOL bFind = true;
xml.ResetMainPos();

while (xml.FindChildElem("UserID");)
{

xml.IntoElem();
CString strTagName = _T("");
CString strData = _T("");
strTagName = xml.GetTagName();
strData = xml.GetData();
TRACE("\n---tagName:%s,Data:%s--\n",strTagName,strData);
xml.OutOfElem();

}*/

/**************这样也可以**********************
CMarkup xml;
xml.Load("UserInfo.xml");

BOOL bFind = true;
xml.ResetMainPos();
xml.FindElem(); //UserInfo
xml.IntoElem();

while (xml.FindElem("UserID");)
{

CString strTagName = _T("");
CString strData = _T("");

strTagName = xml.GetTagName();
strData = xml.GetData();

TRACE("\n---tagName:%s,Data:%s--\n",strTagName,strData);

}
*/

//-------------结果----------
---tagName:UserID,Data:luo--
---tagName:UserID,Data:lin—

3。修改
//--------把UserID为”luo”改为”flypigluo”-----------
BOOL bLoadXml = false;
CMarkup xml;
bLoadXml = xml.Load("UserInfo.xml");

if (bLoadXml)
{

CString strUserID = _T("");
xml.ResetMainPos();
xml.FindElem();
xml.IntoElem();


while (xml.FindElem("UserID"))
{

strUserID = xml.GetData();
if (strUserID=="luo")
{

xml.SetData(CString("flypig")+strUserID);
xml.Save("UserInfo.xml");
break;

}

}

}

4。添加

4。1 添在最后面(使用的是AddElem)
//加在最后面
BOOL bLoadXml = false;
CMarkup xml;
bLoadXml = xml.Load("UserInfo.xml");

if (bLoadXml)
{

xml.ResetMainPos();
xml.FindElem();
xml.IntoElem();
xml.AddElem("UserID","luoluo");
xml.OutOfElem();
xml.Save("UserInfo.xml");

}

//--------原来为------



luo
lin

//---------添加后为-------------


luo
lin
luoluo

4。2 加在最前面(使用InsertElem)
BOOL bLoadXml = false;
CMarkup xml;
bLoadXml = xml.Load("UserInfo.xml");

if (bLoadXml)

{

xml.ResetMainPos();

xml.FindElem();
xml.IntoElem();
xml.InsertElem("UserID","AddUserIDHead");
xml.OutOfElem();
xml.Save("UserInfo.xml");

}

//----原来为—


luo
lin

//------修改后-----


AddUserIDHead
luo
lin

5。删除
CMarkup xml;
xml.Load("UserInfo.xml");
BOOL bFind = true;
xml.ResetMainPos();

while (bFind)

{

bFind = xml.FindChildElem("UserID");

if (bFind)
{//此时接点还是父接点

CString strData = _T("");
strData = xml.GetChildData();

if (strData=="luo")

{

xml.RemoveChildElem();
xml.Save("UserInfo.xml");
break;

}

}

}

6。查找

见第二点浏览。类似

上面的例子里面没有属性这些东西,下面的一个例子是有属性的
//UserInfo1.xml












7。产生
CString strID = _T("");
CString strPwd = _T("");
CMarkup xml;
xml.SetDoc("");
xml.AddElem("UserInfo");

xml.IntoElem();

for (int i=0; i<10; i++)
{     //产生一个随机数,作为权限

srand(UINT(time(NULL)+i));
int nLevel = rand()%256;
strID.Format("UserID%02d",i);
strPwd.Format("UserPwd%02d",i);
xml.AddElem("User");
xml.AddAttrib("UserID",strID);
xml.AddAttrib("UserPwd",strPwd);
xml.AddAttrib("UserLevel",nLevel);

}

xml.OutOfElem();
xml.Save("UserInfo1.xml");

8。查找
CMarkup xml;
BOOL bLoad = false;
BOOL bFind = false;
bLoad = xml.Load("UserInfo1.xml");

if (bLoad)
{

CString strID;
CString strPwd;
xml.ResetMainPos();
xml.FindElem(); //UserInfo
while (xml.FindChildElem("User"))
{

strID = xml.GetChildAttrib("UserID");
strPwd = xml.GetChildAttrib("UserPwd");
TRACE("\n----id:%s,pwd:%s-------\n",strID,strPwd);

if (strID=="UserID00"&&strPwd=="UserPwd00")
{

bFind = true;
break;

}

}

}

if (bFind)
{

TRACE("\n---- find------\n");
}
else
{

TRACE("\n----no find------\n");
}

9。修改
CMarkup xml;
BOOL bLoad = false;
BOOL bFind = false;
bLoad = xml.Load("UserInfo1.xml");

if (bLoad)

{

CString strID;
CString strPwd;

xml.ResetMainPos();
xml.FindElem(); //UserInfo

while (xml.FindChildElem("User"))

{

strID = xml.GetChildAttrib("UserID");
strPwd = xml.GetChildAttrib("UserPwd");
TRACE("\n----id:%s,pwd:%s-------\n",strID,strPwd);

if (strID=="UserID00"&&strPwd=="UserPwd00")
{

bFind = true;
xml.SetChildAttrib("UserID",strID+CString("Modify"));
xml.Save("UserInfo1.xml");
break;

}

}

}

if (bFind)
{

TRACE("\n---- find------\n");
}
else
{

TRACE("\n----no find------\n");
}

阅读(1011) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~