1. 程式人生 > >讀取XML的方法,看了網上很多,確實很簡單。

讀取XML的方法,看了網上很多,確實很簡單。

XML檔案

<Store>
	<item>
		<elment id="101" name="交易品1" spriteName="avatar_Ahri_Yuzaoqian" cost="100"/>
		<elment id="102" name="交易品2" spriteName="avatar_Annie_Totoro" cost="200"/>
		<elment id="103" name="交易品3" spriteName="avatar_Bliz_Baymax" cost="300"/>
		<elment id="104" name="交易品4" spriteName="avatar_Kennen_Pikachu" cost="400"/>
		<elment id="105" name="交易品5" spriteName="avatar_Leona_Saber" cost="500"/>
	</item>
</Store>

這裡列出一個方法。

詳細的可以搜一下雨鬆的xml教程。

 private void Awake()
    {
        string path = Application.dataPath + "/StoreSystem/Xml/武器.xml";
        weapon = LoadXml(path, "Store/item/elment", "id", "name", "spriteName", "cost");
    }

修改的話就把GetAttribute換成SetAttribute(id,value)。

public static Dictionary<int,string[]> LoadXml (string path ,string nodePath,params string[] Attribute)
    {
        Dictionary<int, string[]> dic = new Dictionary<int, string[]>();
        if (File.Exists(path))//檢查xml路徑
        {
            XmlDocument xml = new XmlDocument();
            xml.Load(path);//讀取xml檔案。
            XmlNodeList nodeList = xml.SelectNodes(nodePath);//讀取子節點。返回一個列表。
            foreach (XmlElement item in nodeList)
            {
                int id=item.GetAttribute(Attribute[0]).ToInt();
                string[] str = new string[Attribute.Length - 1];
                for (int i = 1; i < Attribute.Length; i++)
                {
                   str[i-1] =  item.GetAttribute(Attribute[i]);                  
                }
                dic.Add(id, str);
            }
        }
        else
        {
            Debug.Log("路徑不正確");
        }
        return dic;
    }