unity读写XML的相关操作
2017-06-19 10:21
253 查看
读写主要用到了
返回一个 XmlNodeList,它包含与指定 Name 匹配的所有子代元素的列表。
然后在其他地方调用就也可以了
/// 面向对象的三大特征:封装,继承, 多态
父类指针指向子类对象,然后调用父类方法
XmlDocument 类
XmlDocument.GetElementsByTagName 方法 (String)
返回一个 XmlNodeList,它包含与指定 Name 匹配的所有子代元素的列表。using System; using System.Xml; using UnityEngine; class CarXMLConfigure { public const string Root="Root"; public const string NetworkConfigure="NetworkConfigure"; public const string IP="IP"; public const string FileName="config.xml"; public const string StreamingAssets="/StreamingAssets/"; public const string NM = "nm"; } class XMLManagement { private XmlDocument doc; private XmlElement root; private string fileName; public XMLManagement() { doc=new XmlDocument(); } //首先加载 public bool LoadFile(string filePath) { fileName=filePath; doc.Load(filePath); if(doc.InnerXml!="") { root=doc.DocumentElement; return true; } else return false; } public void CreateXMLFile(string filePath) //name should contain .xml,for example "config.xml" { fileName = filePath; XmlDeclaration xmldecl; xmldecl = doc.CreateXmlDeclaration("1.0","gb2312",null); doc.AppendChild (xmldecl); root=doc.CreateElement(CarXMLConfigure.Root); doc.AppendChild(root); } //添加节点 public void setAttribute(string attriName,string attriValue) { XmlElement child=doc.CreateElement(CarXMLConfigure.NetworkConfigure); child.SetAttribute(attriName,attriValue); if(root==null) { Console.WriteLine("the root is null,please create it or get it from an exist xml file!"); return; } root.AppendChild(child); save();//添加节点的时候 需要保存 } public void save() { doc.Save(fileName); } // 获取节点, public string getIP() { // XmlNodeList list = root.GetElementsByTagName(CarXMLConfigure.NetworkConfigure); //root.SelectNodes(CarXMLConfigure.NetworkConfigure);// string text=""; foreach(XmlNode node in list) { XmlElement xmlnode = (XmlElement)node; Debug.Log(node.Value + node.InnerXml + " == " + xmlnode.Name+" == "+xmlnode.Value +" === "+node.LocalName); text = xmlnode.GetAttribute("IP11");// 如果跟节点相同。只能获取到第二个。。。 } Debug.Log(list.Count+" "+text); return text; } public string getAaaryIP(int a) { XmlNodeList list = root.GetElementsByTagName(CarXMLConfigure.NetworkConfigure + a.ToString()); string text = ""; foreach (XmlNode node in list) { text = ((XmlElement)node).GetAttribute(CarXMLConfigure.IP+a.ToString()); } //Debug.Log(text + " " + CarXMLConfigure.IP + a.ToString()); return text; } public string getMus() { XmlNodeList list = root.GetElementsByTagName("MusConfig"); string text = ""; foreach (XmlNode node in list) { text = ((XmlElement)node).GetAttribute("Mus"); } return text; } public string getNum() { XmlNodeList list = root.GetElementsByTagName("OthConfig"); string text = ""; foreach (XmlNode node in list) { text = ((XmlElement)node).GetAttribute(CarXMLConfigure.NM); } return text; } public string getN() { XmlNodeList list = root.GetElementsByTagName("NetConfig"); string text = ""; foreach (XmlNode node in list) { text = ((XmlElement)node).GetAttribute("m"); } return text; } public string getNam() { XmlNodeList list = root.GetElementsByTagName("NamConfig"); string text = ""; foreach (XmlNode node in list) { text = ((XmlElement)node).GetAttribute("nam"); } return text; } public string GetIP(string s) { XmlNodeList list = root.GetElementsByTagName(s); string text = ""; foreach (XmlNode node in list) { text = ((XmlElement)node).GetAttribute(s); } return text; } public string GetIp_Name(int a) { XmlNodeList list = root.GetElementsByTagName(CarXMLConfigure.NetworkConfigure + a.ToString()); string text = ""; foreach (XmlNode node in list) { text = ((XmlElement)node).GetAttribute(CarXMLConfigure.IP + a.ToString()); text = text + "|" + ((XmlElement)node).GetAttribute("name"+a.ToString()); text = text + "|" + ((XmlElement)node).GetAttribute("num"+a.ToString()); } //Debug.Log(text + " " + CarXMLConfigure.IP + a.ToString()); return text; } }
然后在其他地方调用就也可以了
using UnityEngine; using System.Collections; public class ReadXML : MonoBehaviour { XMLManagement manager; // Use this for initialization void Start () { manager = new XMLManagement(); manager.LoadFile(Application.dataPath+CarXMLConfigure.StreamingAssets+CarXMLConfigure.FileName); string str = manager.getAaaryIP(1); //manager.getIP(); string str1 = manager.getIP(); manager.setAttribute("A","B");// 添加 Debug.Log(str +" === "+str1); } // Update is called once per frame void Update () { } }
/// 面向对象的三大特征:封装,继承, 多态
父类指针指向子类对象,然后调用父类方法
相关文章推荐
- xml文件操作( 读写)
- [导入]如何完成.Net下XML文档的读写操作
- 我整理的xml读写操作(sax方式)
- DOM读写XML操作
- 转载:C#中操作XML文件(读写改删全接触) 跟其它语言操作XML差不多一样
- 关于.Net操作XML相关类
- C#中操作XML文件(读写改删全接触) 跟其它语言操作XML差不多一样
- sqlserver2005 xml字段的读写操作
- c# xml读写 操作 实例
- C#文件读写及相关操作
- 如何完成.Net下XML文档的读写操作
- java xml的读写操作!
- Jdom结合Xpath实现XML读写操作
- .net读写 更新 删除(操作)xml文件
- C#操作Xml的相关方法
- C#编写XML读写类操作xml文件
- XML的相关操作[转帖]
- 如何完成.Net下XML文档的读写操作
- JDom操作XML文件读写
- sqlserver2005 xml字段的读写操作