TinyXML的编译和使用

这篇博客介绍了如何编译TinyXML库,包括从官网下载tinyxml_2_6_2.zip,以及使用VC2008/2005创建静态库工程的详细步骤。同时提到了TinyXML2,其声称具有更高的效率。文章最后简要说明了TinyXML的简单使用。

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

TinyXML非常小巧使用简单对于我来说已经够用了.

一. 下载编译

到官网下载tinyxml_2_6_2.zip http://www.grinninglizard.com/tinyxml/ 

现在出了TinyXML2, 那里说2的效率会高一点

http://www.grinninglizard.com/tinyxml2/index.html

我下载的是tinyxml_2_6_2 编译需要VC2010, 由于我用的版本比2010所以我自己重新创建一个静态库工程编译不使用VC2010编译.

编译步骤:

A. 使用VC2008/2005 创建一个Win32静态库工程TinyXML中的tinystr.cpp;tinystr.h;tinyxml.cpp;tinyxml.h;tinyxmlerror.cpp;tinyxmlparser.cpp 6个文件添加到静态库编程按提示修改错误(预编译头错误). 完成即可.


二. 最简单的使用

你懂的

#include "stdafx.h"

#include "../TinyXML/tinyxml.h"
#include "../TinyXML/tinystr.h"

#include <iostream>
#include <string>
#pragma comment(lib,"../Debug/tinyxml.lib");

bool CreateXMLFile(std::string& strFileName)
{
	try
	{
		// 创建一个XML的文档对象。
		TiXmlDocument *xmlDocument = new TiXmlDocument();
		// 根元素。
		TiXmlElement *rootElement = new TiXmlElement("Books");
		// 连接到文档对象, 作为根元素
		xmlDocument->LinkEndChild(rootElement);
		// 创建一个Book元素.
		TiXmlElement *bookElement = new TiXmlElement("Book");
		// 连接到根元素, 就是根元素的子元素
		rootElement->LinkEndChild(bookElement);
		// 设置Book元素的属性, 这里是ID。
		bookElement->SetAttribute("ID", "1");
		// 创建Name元素和Price元素
		TiXmlElement *nameElement = new TiXmlElement("Name");
		TiXmlElement *priceElement = new TiXmlElement("Price");
		// 连接
		bookElement->LinkEndChild(nameElement);
		bookElement->LinkEndChild(priceElement);
		// 设置Name元素和Price元素的值。
		TiXmlText *nameValue = new TiXmlText("葵花宝典");
		nameElement->LinkEndChild(nameValue);
		TiXmlText *priceValue = new TiXmlText("50.00");
		priceElement->LinkEndChild(priceValue);
		xmlDocument->SaveFile(strFileName.c_str());	// 保存到文件
	}
	catch(...)
	{
		return false;
	}
	return true;
}

bool ReadXMLFile(std::string& szFileName)
{
	try
	{
		// 创建一个XML的文档对象。
		TiXmlDocument *xmlDocument = new TiXmlDocument(szFileName.c_str());
		// 解析
		xmlDocument->LoadFile();
		// 获得根元素
		TiXmlElement *rootElement = xmlDocument->RootElement();

		// 输出根元素名称
		std::cout << rootElement->Value() << std::endl;
		// 获得第一个节点。
		TiXmlElement *firstElement = rootElement->FirstChildElement();
		// 获得第一个Person的name节点和age节点和ID属性。
		TiXmlElement *nameElement = firstElement->FirstChildElement();
		TiXmlElement *priceElement = nameElement->NextSiblingElement();
		TiXmlAttribute *IDAttribute = firstElement->FirstAttribute();

		// 输出
		std::cout << nameElement->FirstChild()->Value() << std::endl;
		std::cout << priceElement->FirstChild()->Value() << std::endl;
		std::cout << IDAttribute->Value()<< std::endl;
	}
	catch (...)
	{
		return false;
	}
	return true;
}


int _tmain(int argc, _TCHAR* argv[])
{
	std::string fileName = "C:\\test.xml";
	CreateXMLFile(fileName);
	ReadXMLFile(fileName);
	return 0;
}


资源下载地址:

http://download.youkuaiyun.com/detail/cay22/5088811



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值