UE4自带一个XmlParser,可以很方便的实现Xml的读写。

1,在PublicDependencyModuleNames.AddRange中添加XmlParser。

2,include XmlParser.h

读写操作封装在了xmlobject  需要根据需求增加 修改

xmlobject.h

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include <map>

/**
 * 
 */
struct NodeStruct
{
    FString tag;
    FString content;

    NodeStruct(FString Tag,FString Content)
    {
        tag = Tag;
        content = Content;
    }
};

class TESTJIGOU_API XmlFileObject
{
public:
    XmlFileObject(const FString &filePath, const FString &fileName,int NodeCount = 0,...);
    ~XmlFileObject();

public:
    class FXmlFile* m_File;
    class FXmlNode* m_RootNode;
    FString m_FilePath;
    FString m_FileName;
    bool loadFileSuccess;

public:
    bool SetNode(const FString &tag, const FString &content);
    bool SetNode(const FString &tag, int content);
    bool SetNode(const FString &tag, float content);

    bool AddChild(const FString &ParentNodeTag,const FString& ChildNodeTag,const FString &ChildNodeContent);
    bool AddChild(FXmlNode* ParentNode, const FString& ChildNodeTag, const FString& ChildNodeContent);
    

    FXmlNode* GetNode(const FString& tag,const FString &content);


    FXmlNode* GetChildNode(FXmlNode* TargetNode, const FString& ChildTag);
    FXmlNode* GetChildNode(FXmlNode* TargetNode, const FString& ChildTag, const FString& ChildContent);

    const TCHAR* GetChildNodeContent(FXmlNode* TargetNode, const FString& ChildTag);

    const TCHAR* GetNodeContent(const FString &tag);

private:
    void Save();
};
xmlobject.h

相关文章: