概述:
1. tintxml2是一个开源、简单、小巧、高效的C++ XML解析器,它只有一个.h文件和一个.cpp文件组成,可以轻松集成到其它程序中。它解析XML文档并从中构建可以读取、修改和保存的文档对象模型(Document Object Model, DOM)。它不能解析DTD(Document Type Definitions, 文档类型定义)或XSL(eXtensible Stylesheet Language, 扩展样式表语言)。在tintxml2中,XML数据被解析为可以浏览和操作的C++对象,然后写入磁盘和其它输出流。它不依赖于C++的STL。
此库已上传资源大家可去下载,或点击关注私聊。
2. 链接: C++之tintxml2库读取Xml示例.
代码示例:
bool SetValveGroup::writeXml(const std::string fileName)
{
if(fileName.empty())
return false;
tinyxml2::XMLDocument doc;
//创建版本字符头<?xml version="1.0" encoding="UTF-8"?>
tinyxml2::XMLDeclaration *ation = doc.NewDeclaration();
doc.InsertEndChild(ation);
//创建根节点<ValveGroupModel>
tinyxml2::XMLElement* root = doc.NewElement("GroupModel");
doc.InsertEndChild(root);
//创建根元素
root->SetAttribute("O", "Text1");
root->SetAttribute("Project", "Name1");
QString date = QDate::currentDate().toString("yyyy/MM/dd");
root->SetAttribute("CreateTime", date.toStdString().c_str());
root->SetAttribute("UpdateTime", date.toStdString().c_str());
//创建子节点<Model>
tinyxml2::XMLElement* model = doc.NewElement("Model");
root->InsertEndChild(model);
//创建子元素
model->SetAttribute("N", 1);
model->SetAttribute("T", 2);
model->SetAttribute("S", 3);
model->SetAttribute("D", 4);
model->SetAttribute("L", 5);
model->SetAttribute("A", 6);
model->SetAttribute("B", 7);
model->SetAttribute("C", 8);
model->SetAttribute("P1", 9);
model->SetAttribute("A", 10);
model->SetAttribute("O", 11);
model->SetAttribute("U", 12);
//创建孙子节点<Param>
tinyxml2::XMLElement* param = doc.NewElement("Param");
model->InsertEndChild(param);
//创建孙子元素
param->SetAttribute("I", 13);
param->SetAttribute("P", 14);
param->SetAttribute("O", 15);
param->SetAttribute("L", 16);
param->SetAttribute("D", 17);
param->SetAttribute("T", 18);
param->SetAttribute("SubT", 19);
param->SetAttribute("SubO", 20);
param->SetAttribute("SubD", 21);
param->SetAttribute("Description", 22);
// 输出XML至文件
doc.SaveFile(fileName.c_str());
return true;
}
Xml结构示例:
<?xml version="1.0" encoding="UTF-8"?>
<GroupModel O="Text1" Project="Name1" CreateTime="2021/05/26" UpdateTime="2021/05/26">
<Model N="1" T="2" S="3" D="4" L="5" A="10" B="7" C="8" P1="9" O="11" U="12">
<Param I="13" P="14" O="15" L="16" D="17" T="18" SubT="19" SubO="20" SubD="21" Description="22"/>
</Model>
</GroupModel>
over:
欢迎大家关注作者在文末评论、点赞、转发以及批评指正!
如果大家有更好的方法或有问题可以在文末评论一起讨论!
共同学习!
共同进步!
文末一句话:
该强时强,该弱时弱,懂得认怂,才是为人处世的最高境界。