日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

CMarkup类在VC中的使用

發(fā)布時(shí)間:2024/4/17 c/c++ 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CMarkup类在VC中的使用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?首先到http://www.firstobject.com/dn_markup.htm上面下載CMarkup類,將CMarkup.cpp和CMarkup.h導(dǎo)入到我們的工程中就可以了。編譯可能會(huì)出現(xiàn)問(wèn)題,解決的方法是在CMarkup.cpp的開(kāi)頭加上#include <stdafx.h>,或者關(guān)閉預(yù)編譯也可以。

1、創(chuàng)建一個(gè)XML文檔

對(duì)于創(chuàng)建一個(gè)XML文檔,需要實(shí)例化一個(gè)CMarkup對(duì)象,并調(diào)用AddElem創(chuàng)建根元素。在這個(gè)位置,如果你調(diào)用?AddElem("School")?,文檔會(huì)簡(jiǎn)單的裝一個(gè)空元素<School/>.?然后調(diào)用AddChildElem?在根元素的下面創(chuàng)建元素。

1?????CMarkup?xml;
?2?????xml.SetDoc("<?xml?version=\"1.0\"?encoding=\"UTF-8\"?>\r\n");
?3?????xml.AddElem("School");
?4?????xml.IntoElem();
?5?????xml.AddElem("Department","Automation");
?6?????xml.AddElem("Department","Computer");
?7?????xml.AddElem("Department","Math");
?8?????xml.AddElem("Department","English");
?9?????xml.OutOfElem();
10?????xml.Save("School.xml");


效果如下:

?

1<?xml?version="1.0"?encoding="UTF-8"?>
2<School>
3????<Department>Automation</Department>
4????<Department>Computer</Department>
5????<Department>Math</Department>
6????<Department>English</Department>
7</School>
8


2、瀏覽特定元素

1?????CMarkup?xml;
?2?????xml.Load("School.xml");
?3?????BOOL?bFind=TRUE;
?4?????xml.ResetMainPos();
?5?????
?6?????while(xml.FindChildElem("Department"))
?7?????{
?8?????????CString?strTagName=_T("");
?9?????????CString?strData=_T("");
10?????????strTagName=xml.GetChildTagName();????//此時(shí)節(jié)點(diǎn)是父節(jié)點(diǎn)
11?????????strData=xml.GetChildData();
12?????????TRACE("\n---tagName:%s,Data:%s--\n",strTagName,strData);
13?????}


//***********************這樣也可以*****************************/

1?????CMarkup?xml;
?2?????xml.Load("School.xml");
?3?????BOOL?bFind?=?TRUE;
?4?????xml.ResetMainPos();
?5?????
?6?????while?(xml.FindChildElem("Department"))????????
?7?????{
?8?????????xml.IntoElem();
?9?????????CString?strTagName?=?_T("");
10?????????CString?strData?=?_T("");
11?????????strTagName?=?xml.GetTagName();
12?????????strData?=?xml.GetData();
13?????????TRACE("\n---tagName:%s,Data:%s--\n",strTagName,strData);
14?????????xml.OutOfElem();
15?????}


//***********************或者這樣也可以***************************/

1?????CMarkup?xml;
?2?????xml.Load("School.xml");
?3?????BOOL?bFind?=?TRUE;
?4?????xml.ResetMainPos();
?5?????xml.FindElem();??//School
?6?????xml.IntoElem();
?7?????
?8?????while?(xml.FindElem("Department"))
?9?????{
10?????????CString?strTagName?=?_T("");
11?????????CString?strData?=?_T("");
12?????????strTagName?=?xml.GetTagName();
13?????????strData?=?xml.GetData();
14?????????TRACE("\n---tagName:%s,Data:%s--\n",strTagName,strData);
15?????}


//***********結(jié)果**************
????? ---tagName:Department,Data:Automation--

---tagName:Department,Data:Computer--

---tagName:Department,Data:Math--

---tagName:Department,Data:English--

3、修改元素
//把Department為”English“改為”Chinese“

1?????CMarkup?xml;
?2?????BOOL?bLoadXml=FALSE;
?3?????bLoadXml=xml.Load("School.xml");
?4?
?5?????if(bLoadXml)
?6?????{
?7?????????CString?str=_T("");
?8?????????xml.ResetMainPos();
?9?????????xml.FindElem();
10?????????xml.IntoElem();
11?????????while(xml.FindElem("Department"))
12?????????{
13?????????????str=xml.GetData();
14?????????????if(str=="English")
15?????????????{
16?????????????????xml.SetData("Chinese");
17?????????????????xml.Save("School.xml");
18?????????????????break;
19?????????????}
20?????????}
21?????}


效果如下:

1<?xml?version="1.0"?encoding="UTF-8"?>
2<School>
3????<Department>Automation</Department>
4????<Department>Computer</Department>
5????<Department>Math</Department>
6????<Department>Chinese</Department>
7</School>
8


4、添加
4、1 添加在最后面(用AddElem)

1?????CMarkup?xml;
?2?????BOOL?bLoadXml=FALSE;
?3?????bLoadXml=xml.Load("School.xml");
?4?????if(bLoadXml)
?5?????{
?6?????????xml.ResetMainPos();
?7?????????xml.FindElem();
?8?????????xml.IntoElem();
?9?????????xml.AddElem("Department","SiQinghua");
10?????????xml.OutOfElem();
11?????????xml.Save("School.xml");
12?????}


效果如下:

1<?xml?version="1.0"?encoding="UTF-8"?>
2<School>
3????<Department>Automation</Department>
4????<Department>Computer</Department>
5????<Department>Math</Department>
6????<Department>Chinese</Department>
7????<Department>SiQinghua</Department>
8</School>


4、2 添加在最前面(用InsertElem)

1?????CMarkup?xml;
?2?????BOOL?bLoadXml=FALSE;
?3?????bLoadXml=xml.Load("School.xml");
?4?????if(bLoadXml)
?5?????{
?6?????????xml.ResetMainPos();
?7?????????xml.FindElem();
?8?????????xml.IntoElem();
?9?????????xml.AddElem("Department","SiQinghua");
10?????????xml.OutOfElem();
11?????????xml.Save("School.xml");
12?????}


效果如下:

1<?xml?version="1.0"?encoding="UTF-8"?>
?2<School>
?3????<Department>NARI</Department>
?4????<Department>Automation</Department>
?5????<Department>Computer</Department>
?6????<Department>Math</Department>
?7????<Department>Chinese</Department>
?8????<Department>SiQinghua</Department>
?9</School>
10


5、刪除

1?????CMarkup?xml;
?2?????BOOL?bLoadXml=FALSE;
?3?????bLoadXml=xml.Load("School.xml");
?4?????if(bLoadXml)
?5?????{
?6?????????BOOL?bFind=TRUE;
?7?????????xml.ResetMainPos();
?8?????????while(bFind)
?9?????????{
10?????????????bFind=xml.FindChildElem("Department");
11?????????????if(bFind)
12?????????????{
13?????????????????CString?strData=_T("");
14?????????????????strData=xml.GetChildData();????//此時(shí)節(jié)點(diǎn)還是父節(jié)點(diǎn)
15?????????????????if("SiQinghua"==strData)
16?????????????????{
17?????????????????????xml.RemoveChildElem();
18?????????????????????xml.Save("School.xml");
19?????????????????????break;
20?????????????????}
21?????????????}
22?????????}
23?????}


效果如下:

1?<?xml?version="1.0"?encoding="UTF-8"?>
2?<School>
3?????<Department>NARI</Department>
4?????<Department>Automation</Department>
5?????<Department>Computer</Department>
6?????<Department>Math</Department>
7?????<Department>Chinese</Department>
8?</School>
9?



上面的例子都是不帶屬性的,下面舉一個(gè)帶有屬性的例子。
1、生成XML文檔

1?????CMarkup?xml;
?2?????xml.SetDoc("<?xml?version=\"1.0\"?encoding=\"UTF-8\"?>");
?3?????xml.AddElem("UserInfo");
?4?????xml.IntoElem();
?5?????for(int?i=0;i<10;i++)
?6?????{
?7?????????CString?strID=_T("");
?8?????????CString?strPwd=_T("");
?9?
10?????????srand(UINT(time(NULL)+i));?//產(chǎn)生一個(gè)隨機(jī)數(shù)
11?????????int?nLevel=rand()%256;
12?
13?????????strID.Format("UserID%02d",i);
14?????????strPwd.Format("UserPwd%02d",i);
15?
16?????????xml.AddElem("User");
17?????????xml.AddAttrib("UserID",strID);
18?????????xml.AddAttrib("UserPwd",strPwd);
19?????????xml.AddAttrib("UserLevel",nLevel);
20?????}
21?????xml.OutOfElem();
22?????xml.Save("UserInfo.xml");


效果如下:

1<?xml?version="1.0"?encoding="UTF-8"?>
?2<UserInfo>
?3????<User?UserID="UserID00"?UserPwd="UserPwd00"?UserLevel="85"/>
?4????<User?UserID="UserID01"?UserPwd="UserPwd01"?UserLevel="88"/>
?5????<User?UserID="UserID02"?UserPwd="UserPwd02"?UserLevel="92"/>
?6????<User?UserID="UserID03"?UserPwd="UserPwd03"?UserLevel="95"/>
?7????<User?UserID="UserID04"?UserPwd="UserPwd04"?UserLevel="98"/>
?8????<User?UserID="UserID05"?UserPwd="UserPwd05"?UserLevel="101"/>
?9????<User?UserID="UserID06"?UserPwd="UserPwd06"?UserLevel="105"/>
10????<User?UserID="UserID07"?UserPwd="UserPwd07"?UserLevel="108"/>
11????<User?UserID="UserID08"?UserPwd="UserPwd08"?UserLevel="111"/>
12????<User?UserID="UserID09"?UserPwd="UserPwd09"?UserLevel="115"/>
13</UserInfo>
14


2、查找特定屬性

1?????CMarkup?xml;
?2?????BOOL?bLoadXml=FALSE;
?3?????BOOL?bFind=FALSE;
?4?????bLoadXml=xml.Load("UserInfo.xml");
?5?????if(bLoadXml)
?6?????{
?7?????????CString?strID;
?8?????????CString?strPwd;
?9?????????xml.ResetMainPos();
10?????????xml.FindElem();????//UserInfo
11?????????while(xml.FindChildElem("User"))
12?????????{
13?????????????strID=xml.GetChildAttrib("UserID");
14?????????????strPwd=xml.GetChildAttrib("UserPwd");
15?????????????TRACE("\n---id:%s,pwd:%s---\n",strID,strPwd);
16?????????????if(strID=="UserID02"?&&?strPwd=="UserPwd02")
17?????????????{
18?????????????????bFind=TRUE;
19?????????????????break;
20?????????????}
21?????????}
22?????}
23?????if(bFind==TRUE)
24?????????TRACE("\n---find---\n");
25?????else
26?????????TRACE("\n---not?find---\n");


3、修改特定屬性

1?????CMarkup?xml;
?2?????BOOL?bFind=FALSE;
?3?????BOOL?bLoadXml=FALSE;
?4?????bLoadXml=xml.Load("UserInfo.xml");
?5?????if(bLoadXml)
?6?????{
?7?????????CString?strID;
?8?????????CString?strPwd;
?9?????????xml.ResetMainPos();
10?????????xml.FindElem();????//UserInfo
11?????????while(xml.FindChildElem("User"))
12?????????{
13?????????????strID=xml.GetChildAttrib("UserID");
14?????????????strPwd=xml.GetChildAttrib("UserPwd");
15?????????????TRACE("\n--id:%s,pwd:%s--\n",strID,strPwd);
16?????????????if(strID=="UserID02"?&&?strPwd=="UserPwd02")
17?????????????{
18?????????????????bFind=TRUE;
19?????????????????xml.SetChildAttrib("UserID",strID+CString("Modified"));
20?????????????????xml.Save("UserInfo.xml");
21?????????????????break;
22?????????????}
23?????????}
24?????}
25?????if(bFind==TRUE)
26?????????TRACE("\n---find---\n");
27?????else
28?????????TRACE("\n---not?find---\n");


效果如下:

1<?xml?version="1.0"?encoding="UTF-8"?>
?2<UserInfo>
?3????<User?UserID="UserID00"?UserPwd="UserPwd00"?UserLevel="85"/>
?4????<User?UserID="UserID01"?UserPwd="UserPwd01"?UserLevel="88"/>
?5????<User?UserID="UserID02Modified"?UserPwd="UserPwd02"?UserLevel="92"/>
?6????<User?UserID="UserID03"?UserPwd="UserPwd03"?UserLevel="95"/>
?7????<User?UserID="UserID04"?UserPwd="UserPwd04"?UserLevel="98"/>
?8????<User?UserID="UserID05"?UserPwd="UserPwd05"?UserLevel="101"/>
?9????<User?UserID="UserID06"?UserPwd="UserPwd06"?UserLevel="105"/>
10????<User?UserID="UserID07"?UserPwd="UserPwd07"?UserLevel="108"/>
11????<User?UserID="UserID08"?UserPwd="UserPwd08"?UserLevel="111"/>
12????<User?UserID="UserID09"?UserPwd="UserPwd09"?UserLevel="115"/>
13</UserInfo>


?

轉(zhuǎn)載于:https://www.cnblogs.com/monkeyfeng/p/4649555.html

總結(jié)

以上是生活随笔為你收集整理的CMarkup类在VC中的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。