读写主要用到了
然后在其他地方调用就也可以了
![](https://img-blog.csdn.net/20170619105227120?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3lvbmc1NA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
/// 面向对象的三大特征:封装,继承, 多态
![](https://img-blog.csdn.net/20170619105251866?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3lvbmc1NA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
XmlDocument 类
XmlDocument.GetElementsByTagName 方法 (String)
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 () {
}
}
父类指针指向子类对象,然后调用父类方法