UE4读取本地XML文件

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

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

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

UE4读取本地XML文件

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, 0, *_FilePath, -1, NULL, 0, NULL, NULL);
char* path=new char[iLength+1];
WideCharToMultiByte(CP_UTF8, 0, *_FilePath, -1, path, iLength, NULL, 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, 0, outchar, strlen(outchar) + 1, NULL, 0);
TCHAR* outTchar = new TCHAR[iLength + 1];
MultiByteToWideChar(CP_UTF8, 0, outchar, strlen(outchar) + 1, outTchar, iLength); GEngine->AddOnScreenDebugMessage(-1, 10, FColor::Red, outTchar);
return true;
}
else
{
return false;
}
}

6.运行截图,其他的具体操作,google百度tinyxml就可以了

UE4读取本地XML文件

上一篇:读取的XML节点中带有冒号怎么办?


下一篇:Unity3d 读取网络xml