目录
XML文件是一种常用的数据交换格式,它以文本形式存储数据,并使用标签来描述数据。解析和生成XML文件是软件开发中常见的任务。
解析XML文件是指从XML文件中读取数据的过程。在.NET中,可以使用XmlDocument类来解析XML文件。下面介绍两种方法来解析XML文件。
- 我们使用
XmlDocument类加载XML文件,并使用XPath表达式选择需要读取的节点。然后,我们可以使用Attributes属性获取节点的属性,并使用InnerText属性获取节点的文本内容。- 如果节点包含子节点,可以使用
ChildNodes属性获取子节点的集合,并使用相同的方法获取子节点的属性或文本内容。
- //2、使用XPath语法解析 路径
- //创建xml对象
- XmlDocument xml = new XmlDocument();
- //读取xml文件
- xml.Load(Application.dataPath + "/Hokag.xml");
-
- // 使用XPath语法解析路径,获取所有名为"HokagInfor"的元素
- // SelectNodes方法返回一个XmlNodeList对象,该对象包含所有匹配的元素
- XmlNodeList nodeList = xml.SelectNodes("Hokags/HokagInfor");
-
- // 对获取到的每个"HokagInfor"元素进行操作
- foreach (XmlElement item in nodeList)
- {
- Hokag hokag = new Hokag();
- //获取特性
- string id = item.GetAttribute("id");
- //获取子节点的值
- hokag.Name = item.ChildNodes[0].InnerText;
- hokag.Age = Int32.Parse(item.ChildNodes[1].InnerText);
- hokag.Skill = item.ChildNodes[2].InnerText;
- Debug.Log(id + ": " + hokag);
- }
- //1、使用xml语法解析
- //创建xml对象
- XmlDocument xml = new XmlDocument();
- //读取xml文件
- xml.Load(Application.dataPath + "/Hokag.xml");
- //获取根节点
- XmlNode root = xml.LastChild;
- //获取根节点的子节点
- XmlNodeList nodeList = root.ChildNodes;
-
-
- foreach (XmlElement item in nodeList)
- {
- Hokag hokag = new Hokag();
- //获取特性
- string id = item.GetAttribute("id");
- //获取子节点的值
- hokag.Name = item.ChildNodes[0].InnerText;
- hokag.Age = Int32.Parse(item.ChildNodes[1].InnerText);
- hokag.Skill = item.ChildNodes[2].InnerText;
- Debug.Log(id + ": " + hokag);
- }
解析完成

生成XML文件是指将数据以XML格式写入文件的过程。在.NET中,可以使用XmlDocument类来生成XML文件。
使用
XmlDocument类创建一个空的XML文档。然后,我们使用CreateElement方法创建需要添加到XML文档中的元素,并使用SetAttribute方法为元素添加属性。如果需要添加子节点,可以使用AppendChild方法将子节点添加到父节点中。最后,我们使用Save方法将XML文档保存到文件中。
- //3.生成xml
- //创建xml对象
- XmlDocument xml = new XmlDocument();
- //创建声明
- xml.AppendChild(xml.CreateXmlDeclaration("1.0", "UTF-8", null));
- //创建根节点
- XmlNode root = xml.CreateElement("Hokags");
- //设置根节点
- xml.SelectSingleNode(root.ToString());
- //添加
- xml.AppendChild(root);
-
- //创建根节点的子节点
- XmlElement hokagInfor = xml.CreateElement("HokagInfor");
- hokagInfor.SetAttribute("id", "1");
- //创建子节点
- XmlElement nameElement = xml.CreateElement("Name");
- XmlElement ageElement = xml.CreateElement("age");
- XmlElement skillElement = xml.CreateElement("Skill");
- nameElement.InnerText = "漩涡鸣人";
- ageElement.InnerText = "20";
- skillElement.InnerText = "嘴遁";
-
- hokagInfor.AppendChild(nameElement);
- hokagInfor.AppendChild(ageElement);
- hokagInfor.AppendChild(skillElement);
-
- root.AppendChild(hokagInfor);
-
- //文件保存
- xml.Save(Application.dataPath + "/HokagInformation.xml");
生成完成

