@H_301_0@ 1。生成UserInfo.xml@H_301_0@ CMarkup xml;
xml.SetDoc("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");@H_301_0@ xml.AddElem("UserInfo");@H_301_0@ xml.IntoElem();@H_301_0@ xml.AddElem("UserID","luo");@H_301_0@ xml.AddElem("UserID","lin");@H_301_0@ xml.OutOfElem();@H_301_0@ xml.Save("UserInfo.xml");
2。浏览特定元素@H_301_0@ //----查看所有UserID----@H_301_0@ CMarkup xml;@H_301_0@ xml.Load("UserInfo.xml");
BOOL bFind = true;@H_301_0@ xml.ResetMainPos();@H_301_0@ while (xml.FindChildElem("UserID");)@H_301_0@ {
//此时接点还是父接点@H_301_0@ CString strTagName = _T("");@H_301_0@ CString strData = _T("");
strTagName = xml.GetChildTagName();@H_301_0@ strData = xml.GetChildData();@H_301_0@ TRACE("\n---tagName:%s,Data:%s--\n",strTagName,strData);
}
/********************这样也可以******************@H_301_0@ CMarkup xml;@H_301_0@ xml.Load("UserInfo.xml");@H_301_0@ BOOL bFind = true;@H_301_0@ xml.ResetMainPos();
while (xml.FindChildElem("UserID");)@H_301_0@ {
xml.IntoElem();@H_301_0@ CString strTagName = _T("");@H_301_0@ CString strData = _T("");@H_301_0@ strTagName = xml.GetTagName();@H_301_0@ strData = xml.GetData();@H_301_0@ TRACE("\n---tagName:%s,strData);@H_301_0@ xml.OutOfElem();
}*/
/**************这样也可以**********************@H_301_0@ CMarkup xml;@H_301_0@ xml.Load("UserInfo.xml");
BOOL bFind = true;@H_301_0@ xml.ResetMainPos();@H_301_0@ xml.FindElem(); //UserInfo@H_301_0@ xml.IntoElem();
while (xml.FindElem("UserID");)@H_301_0@ {
CString strTagName = _T("");@H_301_0@ CString strData = _T("");
strTagName = xml.GetTagName();@H_301_0@ strData = xml.GetData();
TRACE("\n---tagName:%s,strData);
}@H_301_0@ */
//-------------结果----------@H_301_0@ ---tagName:UserID,Data:luo--@H_301_0@ ---tagName:UserID,Data:lin—
3。修改@H_301_0@ //--------把UserID为”luo”改为”flypigluo”-----------@H_301_0@ BOOL bLoadXml = false;@H_301_0@ CMarkup xml;@H_301_0@ bLoadXml = xml.Load("UserInfo.xml");
if (bLoadXml)@H_301_0@ {
CString strUserID = _T("");@H_301_0@ xml.ResetMainPos();@H_301_0@ xml.FindElem();@H_301_0@ xml.IntoElem();
@H_301_0@ while (xml.FindElem("UserID"))@H_301_0@ {
strUserID = xml.GetData();@H_301_0@ if (strUserID=="luo")@H_301_0@ {
xml.SetData(CString("flypig")+strUserID);@H_301_0@ xml.Save("UserInfo.xml");@H_301_0@ break;
}
}
}
4。添加
4。1 添在最后面(使用的是AddElem)@H_301_0@ //加在最后面@H_301_0@ BOOL bLoadXml = false;@H_301_0@ CMarkup xml;@H_301_0@ bLoadXml = xml.Load("UserInfo.xml");
if (bLoadXml)@H_301_0@ {
xml.ResetMainPos();@H_301_0@ xml.FindElem();@H_301_0@ xml.IntoElem();@H_301_0@ xml.AddElem("UserID","luoluo");@H_301_0@ xml.OutOfElem();@H_301_0@ xml.Save("UserInfo.xml");
}
//--------原来为------
<?xml version="1.0" encoding="UTF-8" ?>@H_301_0@ <UserInfo>@H_301_0@ <UserID>luo</UserID>@H_301_0@ <UserID>lin</UserID>@H_301_0@ </UserInfo>
//---------添加后为-------------@H_301_0@ <?xml version="1.0" encoding="UTF-8" ?>@H_301_0@ <UserInfo>@H_301_0@ <UserID>luo</UserID>@H_301_0@ <UserID>lin</UserID>@H_301_0@ <UserID>luoluo</UserID>@H_301_0@ </UserInfo>
4。2 加在最前面(使用InsertElem)@H_301_0@ BOOL bLoadXml = false;@H_301_0@ CMarkup xml;@H_301_0@ bLoadXml = xml.Load("UserInfo.xml");
if (bLoadXml)
{
xml.ResetMainPos();
xml.FindElem();@H_301_0@ xml.IntoElem();@H_301_0@ xml.InsertElem("UserID","AddUserIDHead");@H_301_0@ xml.OutOfElem();@H_301_0@ xml.Save("UserInfo.xml");
}
//----原来为—@H_301_0@ <?xml version="1.0" encoding="UTF-8" ?>@H_301_0@ <UserInfo>@H_301_0@ <UserID>luo</UserID>@H_301_0@ <UserID>lin</UserID>@H_301_0@ </UserInfo>
//------修改后-----@H_301_0@ <?xml version="1.0" encoding="UTF-8" ?>@H_301_0@ <UserInfo>@H_301_0@ <UserID>AddUserIDHead</UserID>@H_301_0@ <UserID>luo</UserID>@H_301_0@ <UserID>lin</UserID>@H_301_0@ </UserInfo>
5。删除@H_301_0@ CMarkup xml;@H_301_0@ xml.Load("UserInfo.xml");@H_301_0@ BOOL bFind = true;@H_301_0@ xml.ResetMainPos();
while (bFind)
{
bFind = xml.FindChildElem("UserID");
if (bFind)@H_301_0@ {//此时接点还是父接点
CString strData = _T("");@H_301_0@ strData = xml.GetChildData();
if (strData=="luo")
{
xml.RemoveChildElem();@H_301_0@ xml.Save("UserInfo.xml");@H_301_0@ break;
}
}
}
6。查找
见第二点浏览。类似
上面的例子里面没有属性这些东西,下面的一个例子是有属性的@H_301_0@ //UserInfo1.xml@H_301_0@ <?xml version="1.0" encoding="UTF-8" ?>@H_301_0@ <UserInfo>@H_301_0@ <User UserID="UserID00" UserPwd="UserPwd00" UserLevel="158" />@H_301_0@ <User UserID="UserID01" UserPwd="UserPwd01" UserLevel="162" />@H_301_0@ <User UserID="UserID02" UserPwd="UserPwd02" UserLevel="165" />@H_301_0@ <User UserID="UserID03" UserPwd="UserPwd03" UserLevel="168" />@H_301_0@ <User UserID="UserID04" UserPwd="UserPwd04" UserLevel="171" />@H_301_0@ <User UserID="UserID05" UserPwd="UserPwd05" UserLevel="175" />@H_301_0@ <User UserID="UserID06" UserPwd="UserPwd06" UserLevel="178" />@H_301_0@ <User UserID="UserID07" UserPwd="UserPwd07" UserLevel="181" />@H_301_0@ <User UserID="UserID08" UserPwd="UserPwd08" UserLevel="184" />@H_301_0@ <User UserID="UserID09" UserPwd="UserPwd09" UserLevel="188" />@H_301_0@ </UserInfo>
7。产生@H_301_0@ CString strID = _T("");@H_301_0@ CString strPwd = _T("");@H_301_0@ CMarkup xml;@H_301_0@ xml.SetDoc("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");@H_301_0@ xml.AddElem("UserInfo");
xml.IntoElem();
for (int i=0; i<10; i++)@H_301_0@ { //产生一个随机数,作为权限
srand(UINT(time(NULL)+i));@H_301_0@ int nLevel = rand()%256;@H_301_0@ strID.Format("UserID%02d",i);@H_301_0@ strPwd.Format("UserPwd%02d",i);@H_301_0@ xml.AddElem("User");@H_301_0@ xml.AddAttrib("UserID",strID);@H_301_0@ xml.AddAttrib("UserPwd",strPwd);@H_301_0@ xml.AddAttrib("UserLevel",nLevel);
}
xml.OutOfElem();@H_301_0@ xml.Save("UserInfo1.xml");
8。查找@H_301_0@ CMarkup xml;@H_301_0@ BOOL bLoad = false;@H_301_0@ BOOL bFind = false;@H_301_0@ bLoad = xml.Load("UserInfo1.xml");
if (bLoad)@H_301_0@ {
CString strID;@H_301_0@ CString strPwd;@H_301_0@ xml.ResetMainPos();@H_301_0@ xml.FindElem(); //UserInfo@H_301_0@ while (xml.FindChildElem("User"))@H_301_0@ {
strID = xml.GetChildAttrib("UserID");@H_301_0@ strPwd = xml.GetChildAttrib("UserPwd");@H_301_0@ TRACE("\n----id:%s,pwd:%s-------\n",strID,strPwd);
if (strID=="UserID00"&&strPwd=="UserPwd00")@H_301_0@ {
bFind = true;@H_301_0@ break;
}
}
}
if (bFind)@H_301_0@ {
TRACE("\n---- find------\n");@H_301_0@ }@H_301_0@ else@H_301_0@ {
TRACE("\n----no find------\n");@H_301_0@ }
9。修改@H_301_0@ CMarkup xml;@H_301_0@ BOOL bLoad = false;@H_301_0@ BOOL bFind = false;@H_301_0@ bLoad = xml.Load("UserInfo1.xml");
if (bLoad)
{
CString strID;@H_301_0@ CString strPwd;
xml.ResetMainPos();@H_301_0@ xml.FindElem(); //UserInfo
while (xml.FindChildElem("User"))
{
strID = xml.GetChildAttrib("UserID");@H_301_0@ strPwd = xml.GetChildAttrib("UserPwd");@H_301_0@ TRACE("\n----id:%s,strPwd);
if (strID=="UserID00"&&strPwd=="UserPwd00")@H_301_0@ {
bFind = true;@H_301_0@ xml.SetChildAttrib("UserID",strID+CString("Modify"));@H_301_0@ xml.Save("UserInfo1.xml");@H_301_0@ break;
}
}
}
if (bFind)@H_301_0@ {
TRACE("\n---- find------\n");@H_301_0@ }@H_301_0@ else@H_301_0@ {
TRACE("\n----no find------\n"); }