C++解析xml

需要导入xml的文件,附件中有

 

需要解析的XML

 

 

<?xml version="1.0" encoding="UTF-8" ?>
<db>
	<db_ip>127.0.0.1</db_ip>	
	<db_port>3306</db_port>
	<dbname>test</dbname>
	<username>root</username>
	<password>root</password>
	
	<connection_num>20</connection_num>
</db>

 获得当前的exe路径

CString SessionFactory::getAppPath()
{
	TCHAR modulePath[MAX_PATH];
	GetModuleFileName(NULL, modulePath, MAX_PATH);
	CString strModulePath(modulePath);
	strModulePath = strModulePath.Left(strModulePath.ReverseFind(_T('\\')));
	return strModulePath;
}

 //解析xml

 

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

 

 

void SessionFactory::loadDataBase(const char * fileName)
{
	CString tempPath=getAppPath();
    char * appPath=(LPSTR)(LPCTSTR)tempPath;
	string seperator = "\\";
	string fullPath = string(appPath)+seperator+fileName;

	TiXmlDocument doc(fullPath.c_str());
	doc.LoadFile();
	TiXmlElement * rootElement = doc.RootElement();
	OutMsg(rootElement->Value());
	TiXmlElement *dbIpElement = rootElement->FirstChildElement();
	dbIp = dbIpElement->FirstChild()->Value();
	
	TiXmlElement *dbPortElement = dbIpElement->NextSiblingElement();
	dbPort = dbPortElement->FirstChild()->Value();

	TiXmlElement *dbNameElement = dbPortElement->NextSiblingElement();
	dbName = dbNameElement->FirstChild()->Value();

	TiXmlElement *dbUsernameElement = dbNameElement->NextSiblingElement();
	username = dbUsernameElement->FirstChild()->Value();

	TiXmlElement *dbPasswordElement = dbUsernameElement->NextSiblingElement();
	password = dbPasswordElement->FirstChild()->Value();

	TiXmlElement *connectionNumElement = dbPasswordElement->NextSiblingElement();
	connectionNum = atoi(connectionNumElement->FirstChild()->Value());
	
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值