• 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, 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就可以了



  • 相关阅读:
    .NET泛型中的协变与逆变
    使用 Roslyn引擎动态编译代码
    Windows 自动更新服务恢复
    She Left Her Shoes
    .NET Core 配置
    EFCore中SQLSERVER 2008 的分页问题
    SQL SERVER 2012/ 2014 分页,用 OFFSET,FETCH NEXT改写ROW_NUMBER的用法(转)
    TFS命令行操作
    负载均衡(Load Balancing)学习笔记(三)
    负载均衡(Load Balancing)学习笔记(二)
  • 原文地址:https://www.cnblogs.com/liang123/p/6325854.html
Copyright © 2020-2023  润新知