XmlParser 简单读取

XmlParser 为引擎自带模块

XML 文件

<?xml version="1.0" encoding="UTF-8"?>
<Movie Name="悬崖之上">
<Category>剧情/悬疑/动作</Category>
<Director>张艺谋</Director>
<Time>2021-04-30</Time>
</Movie>

build.cs 添加 XmlParser 模块

PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "UMG", "Json","XmlParser" });

读取数据

引擎支持读写操作,写入操作可以通过 SetContent 和 AppendChildNode进行扩展。代码中的一些方法为私有,可见引擎建议进行读取操作。

  • FXmlFile

    • LoadFile
    • Clear
    • IsValid
    • GetRootNode
    • Save
  • FXmlNode

    • GetNextNode
    • GetChildrenNodes
    • GetFirstChildNode
    • FindChildNode
    • GetTag
    • GetContent
    • SetContent
    • GetAttributes
    • GetAttribute
    • AppendChildNode
  • 简单实现

    FString XmlPath = FPaths::ProjectDir() + TEXT("DataDrive/Movies.xml");
    XmlPath = FPaths::ConvertRelativePathToFull(XmlPath);
    if (FPaths::FileExists(XmlPath))
    {
    FXmlFile* XmlFile = new FXmlFile(XmlPath);
    // 获取根节点
    FXmlNode* RootNode = XmlFile->GetRootNode();
    // 获取属性值
    FString MovieName = RootNode->GetAttribute(TEXT("Name")); // 获取子节点
    FXmlNode* CategoryNode = RootNode->FindChildNode(TEXT("Category"));
    // 获取子节点的值
    FString MovieCategory = CategoryNode->GetContent(); FString MovieDirector = RootNode->FindChildNode(TEXT("Director"))->GetContent();
    FString MovieTime = RootNode->FindChildNode(TEXT("Time"))->GetContent(); UE_LOG(LogTemp, Warning, TEXT("%s\t%s\t%s\t%s\t"), *MovieName, *MovieCategory, *MovieDirector, *MovieTime);
    }

使用 tinyxml第三方库

tinyxml

待续

【UE4 C++】解析与构建 XML 数据,XmlParser 与 tinyxml的更多相关文章

  1. C#解析json和xml数据

    C#解析json和xml数据 // 用到的包using Newtonsoft.Json; // using Newtonsoft.Json.Linq; const string value = &qu ...

  2. Ajax--PHP+JQuery+Ajax解析json、XML数据、加载页面

    一.JQuery+Ajax用get.post方式提交和请求数据 知识要点: $('#userName').blur(function () { var txt = $(this).val(); $.a ...

  3. java 解析http返回xml数据

    //post 请求 private static String sendPost(String url, String urlParameters) throws Exception { URL ob ...

  4. 手把手教你SOAP访问webservice并DOM解析返回的XML数据(转)

    http://blog.csdn.net/u012534831/article/details/51357111 前言: 目前我们项目组还在采用webservice这种http方式,并且某些网站服务提 ...

  5. 【UE4 C++】 解析与构建 Json 数据

    准备条件 Json 格式 { "Players":[ { "Name": "Player1", "health": 20 ...

  6. iOS 详解NSXMLParser方法解析XML数据方法

    前一篇文章已经介绍了如何通过URL从网络上获取xml数据.下面介绍如何将获取到的数据进行解析. 下面先看看xml的数据格式吧! <?xml version="1.0" enc ...

  7. XML数据的解析

    XML数据的解析 相比于JSON数据解析而言,XML数据解析可能会让更多的童鞋感觉到吃力,对我来说,同样认为JSON数据好像让人感觉比较友好,不过对于程序开发者来说,无非就是这两种数据解析占比较大的部 ...

  8. Android网络之数据解析----SAX方式解析XML数据

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  9. (四)SAX方式解析XML数据

    SAX方式解析XML数据 ​文章来源:http://www.cnblogs.com/smyhvae/p/4044170.html 一.XML和Json数据的引入: 通常情况下,每个需要访问网络的应用程 ...

随机推荐

  1. 10分钟学会Visual Studio将自己创建的类库打包到NuGet进行引用(net,net core,C#)

    前言 NuGet就是一个包(package)管理平台,确切的说是 .net平台的包管理工具,它提供了一系列客户端用于生成,上传和使用包(package),以及一个用于存储所有包的中心库. 对于一个现代 ...

  2. Python - 执行cmd命令

    python操作cmd 我们通常可以使用os模块的命令进行执行cmd 方法一:os.system os.system(执行的命令) # 源码 def system(*args, **kwargs): ...

  3. IKEv2协议协商流程: (IKE-SA-INIT 交换)第二包

    IKEv2协议协商流程: (IKE-SA-INIT 交换)第二包 文章目录 IKEv2协议协商流程: (IKE-SA-INIT 交换)第二包 1. IKEv2 协商总体框架 2. 第二包流程图 3. ...

  4. 一篇文章搞懂Nginx

    Nginx 的产生 Nginx 同 Apache 一样都是一种 Web 服务器.基于 REST 架构风格,以统一资源描述符(Uniform Resources Identifier)URI 或者统一资 ...

  5. Asp.net Core Jwt简单使用

    .net 默认新建Api项目不需要额外从Nuget添加Microsoft.AspNetCore.Authentication.JwtBearer appsettings.json { "Lo ...

  6. 动态拼接表达式——Expression

    我们在项目中会遇到以下查询需求吗? 比如需要查询出满足以下条件的会员: 条件组一:30-40岁的男性会员 条件组二:20-30岁的女性会员 条件组三:60-80岁性别未知的会员 条件组内是并且关系,但 ...

  7. ysoserial CommonsColletions2分析

    ysoserial CommonsColletions2分析 前言 此文章是ysoserial中 commons-collections2 的分析文章,所需的知识包括java反射,javassist. ...

  8. ssh跳转设置

    SSH工具的非常规使用 原创 景朝阳 FreeSWITCH中文社区 今天   说明:本文所有的命令是基于OpenSSH客户端7.4p1版本.如果出现命令不正确,请检测是否为此OpenSSH版本. 设置 ...

  9. 在 vue-cli 项目中 使用elementUI 的“自定义主题”功能

    1.安装elementUI $ npm i element-ui -S 2.安装主题工具 npm i element-theme -g 3.安装chalk主题 npm 安装 npm i element ...

  10. pymysql基础教程

    pymysql基础教程 1.下载pymysql 在命令框输入指令即可 pip install pymysql 2.连接pymysql 连接数据库: import pymysql conn = pymy ...