C++ XML 库 TinyXML2 的基本使用(案例版)

本文介绍了如何使用TinyXML-2库在C++中进行XML的解析和生成。首先,通过导入头文件并创建XMLDocument对象来加载XML文件。接着,利用LoadFile方法加载文件并检查其成功性。获取到根节点后,可以遍历子节点,读取属性和文本内容。此外,文章还涵盖了XML的生成过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TinyXML-2 是一个轻量级的开源 C++ XML 解析库,用于处理XML数据。

#include"pch.h"

#include <iostream>
#include <string>

#include "tinyxml2.h"

//tinyxml2的类在tinyxml2命名空间
using namespace tinyxml2;


int main()
{
   
	//0、创建对象
	tinyxml2::XMLDocument doc;
	//1、添加声明---XMLDeclaration*
	XMLDeclaration* declaration = doc.NewDeclaration();
	
	//2、创建根节点---XMLElement*
	XMLElement* root = doc.NewElement("Root"); doc.InsertEndChild(root);
	

	//3、创建子节点---XMLElement*
	 <User Name = "fengbingchun">
		<Blog>CSDN< / Blog>
		<Code>GitHub< / Code>
	 < / User>
	XMLElement* user = doc.NewElement("User");
	user->SetAttribute("Name", "feng");//user->Attribute("Name", "feng");
	root->InsertEndChild(user);

	XMLElement* blog = doc.NewElement("Blog");
	XMLText* text1 = doc.NewText("CSDN");
	blog->InsertEndChild(text1);
	user->InsertEndChild(blog);

	XMLElement* code = doc.NewElement("Code");
	XMLText* text2 = doc.NewText("GtiHub");
	code->InsertEndChild(text2);
	user->InsertEndChild(code);

	//<Blog Name = "CSDN">
	//	<Address>https://blog.csdn.net/fengbingchun</Address>
	//	<ID>fengbingchun< / ID>
	//< / Blog>

	XMLElement* blog2 = doc.NewElement("Blog");
	blog2->SetAttribute("Name", "CSDN");//blog2->Attribute("Name", "CSDN");
	root->InsertEndChild(blog2);	//设置结束标签: 大节点-》小节点 (父节点-》子节点)

	XMLElement* addr = doc.NewElement("Address");
	XMLText* text3 = doc.NewText("https://blog.csdn.net/fengbingchun");
	addr->InsertEndChild(text3);
	blog2->InsertEndChild(addr);		// 大节点-》小节点 (父节点-》子节点)

	XMLElement* ID = doc.NewElement("ID");
	XMLText* text4 = doc.NewText("feng");
	ID->InsertEndChild(text4);
	blog2->InsertEndChild(ID);

	//<Code Name = "GitHub">
	//	<Address>https://github.com//fengbingchun</Address>
	//	< Repositories>27 < / Repositories >
	//< / Code>
	XMLElement* code2 = doc.NewElement("Code");
	code2->SetAttribute("Name", "GitHub");
	root->InsertEndChild(code2);

	XMLElement* add2 = doc.NewElement("Address");
	XMLText* text5 = doc.NewText("https://github.com//fengbingchun");
	add2->InsertEndChild(text5);
	code2->InsertEndChild(add2);

	XMLElement* repositories = doc.NewElement("Repositories"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值