diff --git a/Client/Assets/Scripts/Data/Define.cs b/Client/Assets/Scripts/Data/Define.cs
index 5490d4b..69ac7f6 100644
--- a/Client/Assets/Scripts/Data/Define.cs
+++ b/Client/Assets/Scripts/Data/Define.cs
@@ -8,6 +8,7 @@ namespace Data
public string defName;
public string label;
public string discription;
+ public string packID;
///
/// 初始化方法,根据传入的 XML 元素 () 进行处理。
///
diff --git a/Client/Assets/Scripts/Data/DefineManager.cs b/Client/Assets/Scripts/Data/DefineManager.cs
index 3e26eb7..80c1422 100644
--- a/Client/Assets/Scripts/Data/DefineManager.cs
+++ b/Client/Assets/Scripts/Data/DefineManager.cs
@@ -19,7 +19,7 @@ namespace Data
public void Init()
{
// 加载所有 XML 文件路径
- var xmlFilePaths = FileHandler.LoadXmlFilesFromPaths(dataSetFilePath);
+ var xmlFilePaths = FileHandler.GetXmlFilePathsFromPaths(dataSetFilePath);
// 遍历并加载每个 XML 文件
foreach (var xmlFilePath in xmlFilePaths)
diff --git a/Client/Assets/Scripts/Data/DefinePack.cs b/Client/Assets/Scripts/Data/DefinePack.cs
new file mode 100644
index 0000000..e14972d
--- /dev/null
+++ b/Client/Assets/Scripts/Data/DefinePack.cs
@@ -0,0 +1,56 @@
+using System;
+using System.Collections.Generic;
+using System.Xml;
+
+namespace Data
+{
+ public struct PackAbout
+ {
+ public string name;
+ public string description;
+ public string author;
+ }
+ public class DefinePack
+ {
+ public string packID;
+ public PackAbout packAbout;
+ public List defines;
+
+ public void LoadPack(string packPath)
+ {
+ var packDatas=Utils.FileHandler.LoadXmlFromPath(packPath);
+
+ }
+ ///
+ /// 从 ListXmlDocument 中查找指定根元素名称的文档。
+ ///
+ /// XML 文档列表。
+ /// 目标根元素名称。
+ /// 符合条件的 XML 文档列表。
+ public static List FindDocumentsWithRootName(List xmlDocuments, string rootName)
+ {
+ var result = new List();
+
+ foreach (var xmlDoc in xmlDocuments)
+ {
+ try
+ {
+ // 获取根节点
+ var root = xmlDoc.DocumentElement;
+
+ if (root != null && root.Name == rootName)
+ {
+ // 如果根节点名称匹配,则添加到结果列表
+ result.Add(xmlDoc);
+ }
+ }
+ catch (Exception ex)
+ {
+ Console.Error.WriteLine($"处理 XML 文档时发生错误: {ex.Message}");
+ }
+ }
+
+ return result;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Client/Assets/Scripts/Data/DefineSourceData.cs.meta b/Client/Assets/Scripts/Data/DefinePack.cs.meta
similarity index 100%
rename from Client/Assets/Scripts/Data/DefineSourceData.cs.meta
rename to Client/Assets/Scripts/Data/DefinePack.cs.meta
diff --git a/Client/Assets/Scripts/Data/DefineSourceData.cs b/Client/Assets/Scripts/Data/DefineSourceData.cs
deleted file mode 100644
index 233d3f0..0000000
--- a/Client/Assets/Scripts/Data/DefineSourceData.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-namespace Data
-{
- public class DefineSourceData
- {
- public string className;
- public string defName;
- public string label;
- public string discription;
-
-
- }
-}
\ No newline at end of file
diff --git a/Client/Assets/Scripts/Utils/FileHandler.cs b/Client/Assets/Scripts/Utils/FileHandler.cs
index 3e97b41..9253f5f 100644
--- a/Client/Assets/Scripts/Utils/FileHandler.cs
+++ b/Client/Assets/Scripts/Utils/FileHandler.cs
@@ -1,8 +1,10 @@
using System;
using System.Collections.Generic;
using System.IO;
+using System.Xml;
using Newtonsoft.Json;
using UnityEngine;
+using Formatting = Newtonsoft.Json.Formatting;
namespace Utils
{
@@ -158,7 +160,7 @@ namespace Utils
///
/// 文件夹路径
///
- public static List LoadXmlFilesFromPaths(string[] paths)
+ public static List GetXmlFilePathsFromPaths(string[] paths)
{
var xmlFilePaths = new List();
@@ -194,6 +196,56 @@ namespace Utils
return xmlFilePaths;
}
+
+ ///
+ /// 从指定路径加载所有 XML 文件并解析为 XmlDocument 对象。
+ ///
+ /// 文件夹路径数组。
+ /// 包含所有解析后的 XmlDocument 对象的列表。
+ public static List LoadXmlFromPaths(string[] paths)
+ {
+ var xmlDocuments = new List();
+ var xmlFilePaths = GetXmlFilePathsFromPaths(paths);
+
+ foreach (var filePath in xmlFilePaths)
+ {
+ try
+ {
+ // 创建一个新的 XmlDocument 实例
+ var xmlDoc = new XmlDocument();
+
+ // 加载 XML 文件内容
+ xmlDoc.Load(filePath);
+
+ // 将解析后的 XmlDocument 添加到结果列表中
+ xmlDocuments.Add(xmlDoc);
+ }
+ catch (Exception ex)
+ {
+ Console.Error.WriteLine($"加载 XML 文件 {filePath} 时发生错误: {ex.Message}");
+ }
+ }
+
+ return xmlDocuments;
+ }
+ ///
+ /// 获取指定单个路径下的所有 XML 文件。
+ ///
+ /// 文件夹路径。
+ /// 包含所有 XML 文件路径的列表。
+ public static List GetXmlFilePathsFromPath(string path)
+ {
+ return GetXmlFilePathsFromPaths(new[] { path });
+ }
+ ///
+ /// 从指定单个路径加载所有 XML 文件并解析为 XmlDocument 对象。
+ ///
+ /// 文件夹路径。
+ /// 包含所有解析后的 XmlDocument 对象的列表。
+ public static List LoadXmlFromPath(string path)
+ {
+ return LoadXmlFromPaths(new[] { path });
+ }
}
}
\ No newline at end of file