using UnityEngine; using System.Collections; using System.IO; using System.Xml; public class XMLTest : MonoBehavIoUr { void Start() { XmlDocument xml = CreateXML(); AddNodetoXML(xml,"123","this is a xml test !请输入相关信息内容"); AddNodetoXML(xml,"456","this is a xml test !请输入相关信息内容"); UpdateNodetoXML(); SaveXML(xml); } XmlDocument CreateXML() { //新建xml对象 XmlDocument xml = new XmlDocument(); //加入声明 xml.AppendChild(xml.CreateXmlDeclaration("1.0","UTF-8",null)); //加入根元素 xml.AppendChild(xml.CreateElement("Root")); return xml; } void AddNodetoXML(XmlDocument xml,string titleValue,string infovalue) { //获取根节点 XmlNode root = xml.SelectSingleNode("Root"); //添加元素 XmlElement element = xml.CreateElement("Node"); element.SetAttribute("Type","string"); //在Node节点下添加子节点 XmlElement titleElelment = xml.CreateElement("Title"); //titleElelment.SetAttribute("Title",TitleValue); titleElelment.InnerText = titleValue; XmlElement infoElement = xml.CreateElement("Info"); //infoElement.SetAttribute("Info",infovalue); infoElement.InnerText = infovalue; element.AppendChild(titleElelment); element.AppendChild(infoElement); root.AppendChild(element); } void UpdateNodetoXML() { string filepath = Application.dataPath + @"/INFO.XML"; if (File.Exists(filepath)) { XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(filepath); //根据指定路径加载xml XmlNodeList nodeList = xmldoc.SelectSingleNode("Root").ChildNodes; //Node节点 //遍历所有子节点 foreach (XmlElement xe in nodeList) { //拿到节点中属性Type=“string”的节点 if (xe.GetAttribute("Type") == "string") { //更新节点属性 xe.SetAttribute("type","text"); //继续遍历 foreach (XmlElement xelement in xe.ChildNodes) { if (xelement.Name == "TitleNode") { //修改节点名称对应的数值,而上面的拿到节点连带的属性 //xelement.SetAttribute("Title","企业简介"); xelement.InnerText = "企业简介"; } } break; } } xmldoc.Save(filepath); print("Update XML OK!"); } } void SaveXML(XmlDocument xml) { //存储xml文件 #if UNITY_EDITOR || UNITY_STANDALONE xml.Save(Application.dataPath + "/StreamingAssets/INFO.XML"); #elif UNITY_ANDROID xml.Save(Application.persistentDataPath + "/INFO.xml"); #endif } }在场景中将此脚本挂在Camera上,运行后刷新即可在StreamingAssets文件夹(如果工程无此文件夹需新建)看到INFO.xml。
原文地址:https://www.jb51.cc/xml/299059.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。