UE4读取本地XML文件

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

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

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


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

[cpp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. #include "MatineeProject.h"  
4.在UE4中的任意C++文件中,tinyxml的头文件

[cpp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. #include "tinyxml.h"  
  2. #include "tinystr.h"  
5.尝试利用tinyxml的接口读取本地xml,主要注意一些变量类型的转换,UE4是自己的一套变量类型,并不适用tinyxml

[cpp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. bool ReadXmlFile()  
  2. {  
  3.     //工程的相对路径+文件名称  
  4.     FString _FilePath= FPaths::GameDir() +"test.xml";  
  5.       
  6.     //将TCHAR转换char 并转UTF-8编码  
  7.     int32 iLength = WideCharToMultiByte(CP_UTF8, 0, *_FilePath, -1, NULL, 0, NULL, NULL);  
  8.     char* path=new char[iLength+1];  
  9.     WideCharToMultiByte(CP_UTF8, 0, *_FilePath, -1, path, iLength, NULL, NULL);  
  10.   
  11.     //创建一个XML的文档对象。  
  12.     TiXmlDocument *myDocument = new TiXmlDocument();  
  13.     if (myDocument->LoadFile(path))  
  14.     {  
  15.         //获得根元素  
  16.         TiXmlElement *RootElement = myDocument->RootElement();  
  17.   
  18.         //将char转为TCHAR utf-8编码 支持中文  
  19.         const char* outchar = RootElement->Value();  
  20.         iLength = MultiByteToWideChar(CP_UTF8, 0, outchar, strlen(outchar) + 1, NULL, 0);  
  21.         TCHAR* outTchar = new TCHAR[iLength + 1];  
  22.         MultiByteToWideChar(CP_UTF8, 0, outchar, strlen(outchar) + 1, outTchar, iLength);  
  23.   
  24.         GEngine->AddOnScreenDebugMessage(-1, 10, FColor::Red, outTchar);  
  25.         return true;  
  26.     }  
  27.     else  
  28.     {  
  29.         return false;  
  30.     }  
  31. }  
6.运行截图,其他的具体操作,google百度tinyxml就可以了


本文转自:http://blog.csdn.net/qq992817263/article/details/52595906

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值