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

待续

最新文章

  1. DDD 领域驱动设计-如何控制业务流程?
  2. ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名
  3. 小技巧:addobject: 和 addobjectsFromArray 的区别
  4. HDU 4049 Tourism Planning(动态规划)
  5. hdu 2054
  6. easyui知识累计.递增.
  7. Firefly 配置说明
  8. 【转】Django+Mysql安装配置详解(Linux)
  9. ios开发中button控件的属性及常见问题
  10. openjdk
  11. 1004 Let the Balloon Rise
  12. JavaScript 之DOM&amp;BOM
  13. [COGS 2401]Time is Money
  14. Linux基础 -Ubuntu
  15. Java开发笔记(六)特殊数字的表达
  16. Ubuntu英文变为中文
  17. [iOS]一行代码集成空白页面占位图(基于runtime+MJRefresh思想)
  18. 基于junit的单元测试类编写
  19. Unity3d粒子系统详解
  20. Centos下PPTP环境部署记录

热门文章

  1. Identity角色管理五(添加用户到角色组)
  2. easyui修复浏览器刷新后,tab页全部关闭的问题
  3. SQL Server Management Studio --- SSMS语言更换
  4. oracle table()函数
  5. 为什么要设置GOROOT/GOPATH
  6. 解决git bash闪退问题 报openssl错误
  7. 编译执行 VS 解释执行
  8. Xamarin UIProgressView自定义
  9. java.net.NoRouteToHostException: Cannot assign requested address
  10. 剑指offer计划19( 搜索与回溯算法中等)---java