• 【Unity】XML文件的解析和生成


    目录

    使用XPath路径语法解析

    使用xml语法解析

    XML文件的生成


    XML文件是一种常用的数据交换格式,它以文本形式存储数据,并使用标签来描述数据。解析和生成XML文件是软件开发中常见的任务。

    解析XML文件是指从XML文件中读取数据的过程。在.NET中,可以使用XmlDocument类来解析XML文件。下面介绍两种方法来解析XML文件。

    • 我们使用XmlDocument类加载XML文件,并使用XPath表达式选择需要读取的节点。然后,我们可以使用Attributes属性获取节点的属性,并使用InnerText属性获取节点的文本内容。
    • 如果节点包含子节点,可以使用ChildNodes属性获取子节点的集合,并使用相同的方法获取子节点的属性或文本内容。

    使用XPath路径语法解析

    1. //2、使用XPath语法解析 路径
    2. //创建xml对象
    3. XmlDocument xml = new XmlDocument();
    4. //读取xml文件
    5. xml.Load(Application.dataPath + "/Hokag.xml");
    6. // 使用XPath语法解析路径,获取所有名为"HokagInfor"的元素
    7. // SelectNodes方法返回一个XmlNodeList对象,该对象包含所有匹配的元素
    8. XmlNodeList nodeList = xml.SelectNodes("Hokags/HokagInfor");
    9. // 对获取到的每个"HokagInfor"元素进行操作
    10. foreach (XmlElement item in nodeList)
    11. {
    12. Hokag hokag = new Hokag();
    13. //获取特性
    14. string id = item.GetAttribute("id");
    15. //获取子节点的值
    16. hokag.Name = item.ChildNodes[0].InnerText;
    17. hokag.Age = Int32.Parse(item.ChildNodes[1].InnerText);
    18. hokag.Skill = item.ChildNodes[2].InnerText;
    19. Debug.Log(id + ": " + hokag);
    20. }

    使用xml语法解析

    1. //1、使用xml语法解析
    2. //创建xml对象
    3. XmlDocument xml = new XmlDocument();
    4. //读取xml文件
    5. xml.Load(Application.dataPath + "/Hokag.xml");
    6. //获取根节点
    7. XmlNode root = xml.LastChild;
    8. //获取根节点的子节点
    9. XmlNodeList nodeList = root.ChildNodes;
    10. foreach (XmlElement item in nodeList)
    11. {
    12. Hokag hokag = new Hokag();
    13. //获取特性
    14. string id = item.GetAttribute("id");
    15. //获取子节点的值
    16. hokag.Name = item.ChildNodes[0].InnerText;
    17. hokag.Age = Int32.Parse(item.ChildNodes[1].InnerText);
    18. hokag.Skill = item.ChildNodes[2].InnerText;
    19. Debug.Log(id + ": " + hokag);
    20. }

    解析完成

    XML文件的生成

    生成XML文件是指将数据以XML格式写入文件的过程。在.NET中,可以使用XmlDocument类来生成XML文件。

    使用XmlDocument类创建一个空的XML文档。然后,我们使用CreateElement方法创建需要添加到XML文档中的元素,并使用SetAttribute方法为元素添加属性。如果需要添加子节点,可以使用AppendChild方法将子节点添加到父节点中。最后,我们使用Save方法将XML文档保存到文件中。

    1. //3.生成xml
    2. //创建xml对象
    3. XmlDocument xml = new XmlDocument();
    4. //创建声明
    5. xml.AppendChild(xml.CreateXmlDeclaration("1.0", "UTF-8", null));
    6. //创建根节点
    7. XmlNode root = xml.CreateElement("Hokags");
    8. //设置根节点
    9. xml.SelectSingleNode(root.ToString());
    10. //添加
    11. xml.AppendChild(root);
    12. //创建根节点的子节点
    13. XmlElement hokagInfor = xml.CreateElement("HokagInfor");
    14. hokagInfor.SetAttribute("id", "1");
    15. //创建子节点
    16. XmlElement nameElement = xml.CreateElement("Name");
    17. XmlElement ageElement = xml.CreateElement("age");
    18. XmlElement skillElement = xml.CreateElement("Skill");
    19. nameElement.InnerText = "漩涡鸣人";
    20. ageElement.InnerText = "20";
    21. skillElement.InnerText = "嘴遁";
    22. hokagInfor.AppendChild(nameElement);
    23. hokagInfor.AppendChild(ageElement);
    24. hokagInfor.AppendChild(skillElement);
    25. root.AppendChild(hokagInfor);
    26. //文件保存
    27. xml.Save(Application.dataPath + "/HokagInformation.xml");

     生成完成

     

  • 相关阅读:
    Kubernetes中的容器类型
    vue-advanced-chat使用指南
    计算机毕业论文java毕业设计选题基于springboot幼儿园管理系统
    Himall商城字符串帮助类移除前导/后导字符串
    使用vscode创建vue项目实践操作
    bootstrap学习:自定义栅格系统
    基于数组的SCL算法实现S7-1200_1500多通道模拟量批量处理的方法
    openFeign引入失败
    Redis篇---第二篇
    聚观早报 | iPhone接口将与安卓统一;《三体》动画定档12月3日
  • 原文地址:https://blog.csdn.net/m0_64476561/article/details/134463522