您的位置:首页 > 编程语言 > C语言/C++

《c++ 操作xml加载时添加元素简单测试小程序》

2018-03-07 18:03 701 查看
一、需要先把xml的两个文件添加,Markup.h和markup.cpp

二、源代码#include "iostream"
#include "Markup.h"
using namespace std;

CMarkup xml;// <实例化一个CMarkup对象
void CreateXML()
{
//printf("开始创建XML文件...\n");
cout<<"开始创建XML文件!"<<endl;
xml.SetDoc("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");// <双引号需要转义

xml.AddElem(_T("Root"));//添加元素Root

xml.IntoElem();// <进入根元素
xml.AddElem(_T("Math"));//添加Math元素

xml.IntoElem();//进入Math元素
xml.AddElem(_T("Advanced_Mathematics"), _T("classroom No.1"));
xml.AddElem(_T("Mathematical_Analysis"), _T("classroom No.2"));
xml.AddElem(_T("Linear_Algebra"), _T("classroom No.3"));
xml.AddElem(_T("Probability_Theory"), _T("classroom No.4"));
xml.OutOfElem();//退出Math元素
//xml.OutOfElem();// <退出根元素
xml.Save(_T("C:\\Users\\dell\\Desktop\\XML1\\XML1.xml"));// <默认创建路径为该工程的根目录
cout<<"创建XML文件完成!"<<endl;
// <printf("创建完成!\n\n");
}
void LoadXml()
{
cout<<"开始添加元素!"<<endl;
xml.Load(_T("C:\\Users\\dell\\Desktop\\XML1\\XML1.xml"));
xml.FindElem(_T("Root"));
xml.IntoElem();
xml.AddElem(_T("English"));
xml.IntoElem();
xml.AddElem(_T("Student"),_T("Xiao_Ming"));//添加内容为Xiao_Ming的Student元素
xml.AddElem(_T("Student"),_T("Li_Hua"));//添加内容为Li_Hua的Student元素
xml.OutOfElem();// <退出根元素
xml.Save(_T("C:\\Users\\dell\\Desktop\\XML1\\XML1.xml"));// <默认创建路径为该工程的根目录
cout<<"添加元素完成!"<<endl;
}

int main()
{
CreateXML();
LoadXml();
system("pause");
return 0;
}

三、效果图<?xml version="1.0" encoding="UTF-8"?>
<Root>
<Math>
<Advanced_Mathematics>classroom No.1</Advanced_Mathematics>
<Mathematical_Analysis>classroom No.2</Mathematical_Analysis>
<Linear_Algebra>classroom No.3</Linear_Algebra>
<Probability_Theory>classroom No.4</Probability_Theory>
</Math>
<English>
<Student>Xiao_Ming</Student>
<Student>Li_Hua</Student>
</English>
</Root>------------------------------分割线-------------------------------------

四、因为后面需要从XML里面把数据提取出来,需要进行查找并且获取名称,先查找根元素,然后查找子元素,然后进入元素,遍历所有的子元素名称,提取元素的内容,在之前的代码上进行了修改。

五、源代码#include "iostream"
#include "Markup.h"
using namespace std;

CMarkup xml;// <实例化一个CMarkup对象
int ExpOperators;
CString strTagName = _T("");
void CreateXML()
{
//printf("开始创建XML文件...\n");
cout<<"开始创建XML文件!"<<endl;
xml.SetDoc("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");// <双引号需要转义

xml.AddElem(_T("Root"));//添加元素Root

xml.Into
4000
Elem();// <进入根元素
xml.AddElem(_T("Math"));//添加Math元素

xml.IntoElem();//进入Math元素
xml.AddElem(_T("Advanced_Mathematics"), _T("classroom No.1"));
xml.AddElem(_T("Mathematical_Analysis"), _T("classroom No.2"));
xml.AddElem(_T("Linear_Algebra"), _T("classroom No.3"));
xml.AddElem(_T("Probability_Theory"), _T("classroom No.4"));
xml.OutOfElem();//退出Math元素
//xml.OutOfElem();// <退出根元素
xml.Save(_T("C:\\Users\\dell\\Desktop\\XML1\\XML1.xml"));// <默认创建路径为该工程的根目录
cout<<"创建XML文件完成!"<<endl;
// <printf("创建完成!\n\n");
}
void LoadXml()
{
cout<<"< 开始添加元素! >"<<endl;
xml.Load(_T("C:\\Users\\dell\\Desktop\\XML1\\XML1.xml"));
if(xml.FindElem(_T("Root")))
{
xml.IntoElem();
xml.AddElem(_T("English"));
xml.IntoElem();
xml.AddElem(_T("Student1"),_T("12345"));//添加内容为Xiao_Ming的Student元素
xml.AddElem(_T("Student2"),_T("6789"));//添加内容为Li_Hua的Student元素
xml.AddElem(_T("Student3"),_T("10"));
xml.OutOfElem();// <退出根元素
xml.Save(_T("C:\\Users\\dell\\Desktop\\XML1\\XML1.xml"));// <默认创建路径为该工程的根目录
cout<<"< 添加元素完成! >"<<endl;
}
}
void Find()
{
xml.Load(_T("C:\\Users\\dell\\Desktop\\XML1\\XML1.xml"));
xml.ResetMainPos();// <把xml对象指向的位置初始化,使其指向文件开始
if (xml.FindElem(_T("Root")))
{
cout<<"Root"<<endl;
if (xml.FindChildElem(_T("English")))
{
cout<<"English"<<endl;
xml.IntoElem();
while(xml.FindChildElem())
{
strTagName = xml.GetChildTagName();
if (strTagName == _T("Student1"))
{
cout<<"Student1"<<endl;
ExpOperators = _ttoi(xml.GetChildData());
cout<<ExpOperators<<endl;
}
else if (strTagName == _T("Student2"))
{
cout<<"Student2"<<endl;
ExpOperators = _ttoi(xml.GetChildData());
cout<<ExpOperators<<endl;
}
else if (strTagName == _T("Student3"))
{
cout<<"Student3"<<endl;
ExpOperators = _ttoi(xml.GetChildData());
cout<<ExpOperators<<endl;
}
}
}
}
xml.Save(_T("C:\\Users\\dell\\Desktop\\XML1\\XML1.xml"));// <默认创建路径为该工程的根目录
}

int main()
{
CreateXML();
LoadXml();
Find();
system("pause");
return 0;
}

六、效果图一



七、效果图二<?xml version="1.0" encoding="UTF-8"?>
<Root>
<Math>
<Advanced_Mathematics>classroom No.1</Advanced_Mathematics>
<Mathematical_Analysis>classroom No.2</Mathematical_Analysis>
<Linear_Algebra>classroom No.3</Linear_Algebra>
<Probability_Theory>classroom No.4</Probability_Theory>
</Math>
<English>
<Student1>12345</Student1>
<Student2>6789</Student2>
<Student3>10</Student3>
</English>
</Root>

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: