C++之tintxml2库写入Xml示例

本文介绍了如何利用开源C++库tintxml2来创建和写入XML文件。通过代码示例展示了如何构建XML文档对象模型,包括设置XML声明、创建根节点和子节点,并将它们的属性赋值,最后将整个XML结构保存到文件中。示例代码详细且易懂,适合需要处理XML文件的C++开发者参考。
摘要由CSDN通过智能技术生成

概述:

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:

欢迎大家关注作者在文末评论、点赞、转发以及批评指正!
如果大家有更好的方法或有问题可以在文末评论一起讨论!
共同学习!
共同进步!

文末一句话:

该强时强,该弱时弱,懂得认怂,才是为人处世的最高境界。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值