其实这里读取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就可以了

UE4读取本地XML文件的更多相关文章

  1. node使用xml-writer生成本地XML文件实例

    npm中xml-writer文档的链接地址:https://www.npmjs.com/package/xml-writer npm中的文档比较简单,而且生成本地xml文件的demo并不正确.本篇是对 ...

  2. boost::property_tree读取解析.xml文件

    boost::property_tree读取解析.xml文件 1)read_xml 支持中文路径  boost::property_tree::wptree wpt;    std::locale:: ...

  3. XML解析之sax解析案例(一)读取contact.xml文件,完整输出文档内容

    一.新建Demo2类: import java.io.File; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXPar ...

  4. 读取本地json文件,并转换为dictionary

    // 读取本地JSON文件 - (NSDictionary *)readLocalFileWithName:(NSString *)name { // 获取文件路径 NSString *path = ...

  5. jQuery ajax读取本地json文件

    jQuery ajax读取本地json文件 json文件 { "first":[ {"name":"张三","sex": ...

  6. JavaScript读取本地json文件

    JavaScript读取本地json文件 今天调试了一上午,通过jQuery读取本地json文件总是失败,始终找不出原因,各种方法都试了 开始总以为是不是json格式的问题.高了半天不行 后来读了一个 ...

  7. jmeter读取本地CSV文件

    用jmeter录制考试上传成绩等脚本时,出现的问题及解决方法如下: 1.beanshell前置处理器,不能读取本地csv文件里的数据: 方法一: 在beanshell里不能直接从本地的csv文件里读取 ...

  8. 读取本地json文件,转出为指定格式json 使用Base64进行string的加密和解密

    读取本地json文件,转出为指定格式json   引用添加Json.Net 引用命名空间 using Newtonsoft.Json //读取自定目录下的json文件StreamReader sr = ...

  9. JAVA读取本地html文件里的html文本

    /** * 读取本地html文件里的html代码 * @param file File file=new File("文件的绝对路径") * @return */ public s ...

随机推荐

  1. ●BZOJ 4516 [Sdoi2016]生成魔咒

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=4516 题解: 把串反过来后,问题变为求每个后缀的互不相同的子串个数.首先用倍增算法求出 sa ...

  2. 2015 多校联赛 ——HDU5335(Walk out)

    Walk Out Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total S ...

  3. poj1753 高斯消元

    Flip Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 37055   Accepted: 16125 Descr ...

  4. hdu5587 BestCoder Round #64 (div.2)

    问题描述 Vicky是个热爱数学的魔法师,拥有复制创造的能力. 一开始他拥有一个数列{1}.每过一天,他将他当天的数列复制一遍,放在数列尾,并在两个数列间用0隔开.Vicky想做些改变,于是他将当天新 ...

  5. Ubuntu 16.04 Vim安装及配置【转】

    转自:http://www.cnblogs.com/ace-wu/p/6273031.html 安装VIM 默认已经安装了VIM-tiny acewu@acewu-computer:~$ locate ...

  6. Java文件操作(新建,遍历,删除)

    //创建文件 private static void createFile(File file){ try { if(!file.exists()){ if(file.getParentFile() ...

  7. mybatis添加记录时返回主键id

    参考:mybatis添加记录时返回主键id 场景 有些时候我们在添加记录成功后希望能直接获取到该记录的主键id值,而不需要再执行一次查询操作.在使用mybatis作为ORM组件时,可以很方便地达到这个 ...

  8. 详解BLE连接建立过程

    同一款手机,为什么跟某些设备可以连接成功,而跟另外一些设备又连接不成功?同一个设备,为什么跟某些手机可以建立连接,而跟另外一些手机又无法建立连接?同一个手机,同一个设备,为什么他们两者有时候连起来很快 ...

  9. 原生Js写轮播图代码

    html css js 在知道jQuery如何实现轮播效果的基础上,用js写代码 如图:标记这里的地方 理解一下 用到的知识: 1.HTML DOM 的appendChild() 和 removeCh ...

  10. JavaScript 代码规范

    所有的 JavaScript 项目适用同一种规范. JavaScript 代码规范 代码规范通常包括以下几个方面: 变量和函数的命名规则 空格,缩进,注释的使用规则. 其他常用规范-- 规范的代码可以 ...