7.Xml基础知识总结

  1. 7.总结
    1. 7.1 知识点
      1. 总结主要内容
      2. 学习内容回顾
      3. 优点
      4. 缺点
      5. 主要用处
    2. 7.2 核心要点速览
      1. 读取 XML 文件
      2. 存储 XML 文件
      3. 修改 XML 文件
      4. 路径选择对比

7.总结


7.1 知识点

总结主要内容

学习内容回顾

优点

缺点

主要用处


7.2 核心要点速览

读取 XML 文件

操作 关键类/方法 代码示例 说明
创建文档对象 XmlDocument 构造函数 XmlDocument xmlDoc = new XmlDocument(); 初始化 XML 文档对象
加载字符串 XML XmlDocument.LoadXml() xmlDoc.LoadXml(textAsset.text); 从 Resources 加载文本字符串(如 TextAsset)
加载路径 XML XmlDocument.Load() xmlDoc.Load(Application.streamingAssetsPath + “/TestXml.xml”); 从 StreamingAssets 加载文件路径(打包后可用)
获取根节点 XmlDocument.SelectSingleNode() XmlNode root = xmlDoc.SelectSingleNode(“Root”); 通过 XPath 路径获取根节点(如 “Root”)
获取子节点内容 XmlNode.InnerText string name = root.SelectSingleNode(“name”).InnerText; 获取节点包裹的文本(如 林文韬
获取属性值(中括号) XmlNode.Attributes[“属性名”].Value string id = node.Attributes[“id”].Value; 通过属性名直接获取属性值(如 id=”1”)
获取属性值(方法) XmlNode.Attributes.GetNamedItem() string num = node.Attributes.GetNamedItem(“num”).Value; 通过方法获取属性值(适合动态属性名)
获取同名节点列表 XmlNode.SelectNodes() XmlNodeList friends = root.SelectNodes(“Friend”); 获取指定名称的所有子节点(如多个
遍历节点列表 foreach/for 循环 foreach (XmlNode friend in friends) { Debug.Log(friend.SelectSingleNode(“name”).InnerText);} 遍历节点列表并输出子节点文本

存储 XML 文件

步骤 关键类/方法 代码示例 说明
选择存储路径 Application.persistentDataPath string path = Application.persistentDataPath + “/Player.xml”; 唯一全平台可读可写路径(推荐)
创建文档对象 XmlDocument 构造函数 XmlDocument xmlDoc = new XmlDocument(); 初始化空文档
添加版本声明 XmlDocument.CreateXmlDeclaration() XmlDeclaration dec = xmlDoc.CreateXmlDeclaration(“1.0”, “UTF-8”, “”); 添加 XML 头部声明(
创建根节点 XmlDocument.CreateElement() XmlElement root = xmlDoc.CreateElement(“Root”); 创建根节点(如
添加子节点及属性 XmlElement.SetAttribute() root.SetAttribute(“id”, “1”);
XmlElement child = xmlDoc.CreateElement(“Child”);
child.InnerText = “内容”;
root.AppendChild(child);
设置属性(如 id=”1”)并添加子节点
保存文件 XmlDocument.Save() xmlDoc.Save(path); 写入磁盘(需权限,persistentDataPath 自动获得)

修改 XML 文件

操作 关键类/方法 代码示例 说明
判断文件存在 File.Exists() if (File.Exists(path)) { … } 避免空文件异常
加载现有文件 XmlDocument.Load() XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(path);
读取已存在的 XML 文件
移除节点 XmlNode.RemoveChild() XmlNode node = root.SelectSingleNode(“Child”);
if (node != null) root.RemoveChild(node);
删除指定子节点
保存修改 XmlDocument.Save() xmlDoc.Save(path); 覆盖原文件(谨慎操作,建议备份)

路径选择对比

路径 可读 可写 打包后访问 适用场景
Resources ✔️ ❌(加密) 只读配置(如初始 XML)
StreamingAssets ✔️ ❌(部分平台) ✔️ 只读资源(如内置 XML)
Application.persistentDataPath ✔️ ✔️ ✔️ 玩家存档(推荐)
Application.dataPath ✔️ 编辑器调试(勿用于发布)


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏