c++解析xml⽂件(增删改查)看完必会
⽂章⽬录
下载Tinyxml资源
Tinyxml下载:
sourceforge/projects/tinyxml/
下载完成之后进⾏解压,tinystr.h、tinystr.cpp、tinyxml.h、tinyxml.cpp、tinyxmlerror.cpp、tinyxmlparser.cpp 6个⽂件放在你的项⽬⽬录下,你⾃⼰写的头⽂件和.cpp⽂件所在的⽬录
在你的程序⽂件中引⼊头⽂件
#include"tinystr.h"
#include"tinyxml.h"
vs需要把.cpp⽂件,拖到源⽂件夹中,.h头⽂件不⽤,
1 ⽣成Xml⽂件(增)
void builder_Xml()
{
TiXmlDocument xmlDocument;
// 添加XML声明
xmlDocument.LinkEndChild(new TiXmlDeclaration("1.0","GBK","")); // 添加根元素
TiXmlElement* xmlRoot =new TiXmlElement("root");
xmlDocument.LinkEndChild(xmlRoot);
//根元素下添加⼦元素1
TiXmlElement* xmlChild1 =new TiXmlElement("name");
xmlRoot->LinkEndChild(xmlChild1);
xmlChild1->SetAttribute("id","0001");//设置属性
xmlChild1->LinkEndChild(new TiXmlText("中间值1"));
//根元素下添加⼦元素2
TiXmlElement* xmlChild2 =new TiXmlElement("s1");
xmlRoot->LinkEndChild(xmlChild2);
TiXmlElement* xmlChild2_01 =new TiXmlElement("name1");
xmlChild2->LinkEndChild(xmlChild2_01);
xmlChild2_01->LinkEndChild(new TiXmlText("中间值2"));
索尼xml文件可以删除吗TiXmlElement* xmlChild2_02 =new TiXmlElement("cs");
xmlChild2->LinkEndChild(xmlChild2_02);
xmlChild2_02->LinkEndChild(new TiXmlText("8"));
//保存xml⽂件
xmlDocument.SaveFile("l");
}
2 删除节点属性及其⼦节点操作(删)
void del_Xml()
{
TiXmlDocument xmlDocument;
if(!xmlDocument.LoadFile("D:/visual_2019_project/l"))// 需要解析的xml⽂件{
return;
}
TiXmlElement* xmlRoot = xmlDocument.RootElement();// 根节点
TiXmlElement* elem = xmlRoot->FirstChildElement("name");
elem->RemoveAttribute("id");//删除name节点的 id属性
xmlRoot->RemoveChild(elem);// 删除root 下第⼀个name节点
xmlDocument.SaveFile("l");
}
3 修改属性值和节点名字(改)
void update_Xml()
{
TiXmlDocument xmlDocument;
if(!xmlDocument.LoadFile("D:/visual_2019_project/l"))// 需要解析的xml⽂件
{
return;
}
TiXmlElement* xmlRoot = xmlDocument.RootElement();// 根节点
TiXmlElement* elem = xmlRoot->FirstChildElement("name");
elem->SetValue("我是修改");// 将root节点下的name节点进⾏修改
elem->SetAttribute("id","我是修改的");// 修改root 下的name节点的id属性(修改就是重新设置然后再保存)
xmlDocument.SaveFile("l");
}
4 遍历代码(查)
遍历xml⽂件
我的xml⽂件:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。