微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

UE4读取本地XML文件

其实这里读取XML也是利用了Tinyxml来读取xml,主要是讲Tinyxml放在UE4中,遇到的一点点坑

1.先给出Tinyxml链接:http://www.grinninglizard.com/tinyxml/,可以下载他的工程

2.用UE4新建一个C++工程,将下图的几个文件添加到UE4.的工程中


3.并在tinyxml的cpp文件添加本工程的头文件,比如这里是

#include "MatineeProject.h"
4.在UE4中的任意C++文件中,tinyxml的头文件
#include "tinyxml.h"
#include "tinystr.h"
5.尝试利用tinyxml的接口读取本地xml,主要注意一些变量类型的转换,UE4是自己的一套变量类型,并不适用tinyxml
bool readxmlFile()
{
	//工程的相对路径+文件名称
	FString _FilePath= FPaths::GameDir() +"test.xml";
	
	//将TCHAR转换char 并转UTF-8编码
	int32 iLength = WideCharToMultiByte(CP_UTF8,*_FilePath,-1,NULL,NULL);
	char* path=new char[iLength+1];
	WideCharToMultiByte(CP_UTF8,path,iLength,NULL);

	//创建一个XML的文档对象。
	tixmlDocument *myDocument = new tixmlDocument();
	if (myDocument->LoadFile(path))
	{
		//获得根元素
		tixmlElement *RootElement = myDocument->RootElement();

		//将char转为TCHAR utf-8编码 支持中文
		const char* outchar = RootElement->Value();
		iLength = MultiBytetoWideChar(CP_UTF8,outchar,strlen(outchar) + 1,0);
		TCHAR* outTchar = new TCHAR[iLength + 1];
		MultiBytetoWideChar(CP_UTF8,outTchar,iLength);

		GEngine->AddOnScreenDebugMessage(-1,10,FColor::Red,outTchar);
		return true;
	}
	else
	{
		return false;
	}
}
6.运行截图,其他的具体操作,google百度tinyxml就可以了

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。