Xml和PlayerPrefs簡單使用


using UnityEngine;
using UnityEditor;
using System.Xml;
using System.Collections;
using System;
using System.IO;
using System.Xml.Serialization;

public class ShuJvCunChu : MonoBehaviour {  
  
      
    void Start () {
//-------------------PlayerPrefs------------------        
        //刪除所有數據
        PlayerPrefs.DeleteAll();
        PlayerPrefs.DeleteKey("鍵");
        //查詢是否有該key
        PlayerPrefs.HasKey("關卡");

        //設置數據
        PlayerPrefs.SetInt("關卡", 10);
        PlayerPrefs.SetFloat("血量", 10.2f);
        PlayerPrefs.SetString("揹包", "血藥*10");
        //獲取數據
        PlayerPrefs.GetFloat("血量");
        PlayerPrefs.GetInt("關卡");
        PlayerPrefs.GetString("揹包");



//----------XML-----------------------------------------
        ////通過代碼創建xml文件
        //SpritesCreateXml();

        ////Xml序列化
        //XmlSerialization();

        //Xml反序列化
        XmlDeserializer();

        ////讀取Xml文件
        //ReadXml();

//-------------Json----------------------------------------
        

        //刷新資源
        AssetDatabase.Refresh();
    }
   



    /// <summary>
    /// 代碼創建Xml文件
    /// </summary>
    public void SpritesCreateXml()
    {
        //創建xml文件
        XmlDocument xd = new XmlDocument();
        //創建xml表頭
        XmlNode xmldct = xd.CreateXmlDeclaration("1.0", "utf-8", null);
        //把表頭添加到XML文件中
        xd.AppendChild(xmldct);

        //創建根元素
        XmlElement root = xd.CreateElement("root");
        //添加根元素
        xd.AppendChild(root);

        //判斷root是否有屬性
        bool b= root.HasAttributes;
        //判斷root是否有“h”節點
        bool c = root.HasAttribute("h");
         
        //創建XMl元素
        XmlElement xe = xd.CreateElement("name");
        //給元素賦值
        xe.InnerText = "小李";
        //添加到XML文件裏面
        root.AppendChild(xe);
        
        //創建屬性
        XmlAttribute xa = xd.CreateAttribute("ID");
        xa.Value = "01";
        xe.Attributes.SetNamedItem(xa);


        //添加元素
        XmlElement age = xd.CreateElement("age");
        age.InnerText=("18");
        xe.AppendChild(age);

        XmlElement site = xd.CreateElement("site");
        site.InnerText = "北京";
        xe.AppendChild(site );


        //創建XMl元素
        XmlElement xe_2 = xd.CreateElement("name");
        //給元素賦值
        xe_2.InnerText = "小張";
        //添加到XML文件裏面
        root.AppendChild(xe_2);

        //創建屬性
        XmlAttribute xa_2 = xd.CreateAttribute("ID");
        xa_2.Value = "02";
        xe_2.Attributes.SetNamedItem(xa_2);


        //添加元素
        XmlElement age_2 = xd.CreateElement("age");
        age_2.InnerText = ("20");
        xe_2.AppendChild(age_2);

        XmlElement site_2 = xd.CreateElement("site");
        site_2.InnerText = "山西";
        xe_2.AppendChild(site_2);

        //保存文件
        xd.Save(Application.dataPath + "/原/ZongJei.xml");
        
    }
    /// <summary>
    /// XML序列化
    /// </summary>
    private void XmlSerialization()//Serialization 序列化  XmlSerializer
    {
        U3DStudent student = new U3DStudent
        {
            name = "小哲",
            site = "江蘇",
            age = 20
        };


        //實例化寫入流並確定文件       引用命名空間System.IO 
        StreamWriter streamWriter = new StreamWriter(Application .dataPath+"/原/ZongJei_StreamWriter.xml");
        //確定序列化內容
        XmlSerializer xmlSerialize = new XmlSerializer (typeof(U3DStudent));
        //寫入
        xmlSerialize.Serialize(streamWriter, student);

        //關閉流
        streamWriter.Close();
    }
    /// <summary>
    /// Xml反序列化
    /// </summary>
    private void XmlDeserializer()
    {
        //讀取文件
        StringReader sr = new StringReader(Application.dataPath + "/原/ZongJei_StreamWriter.xml");
        //給定類型
        XmlSerializer xs = new XmlSerializer(typeof(U3DStudent));
        //進行反序列化
        U3DStudent u = xs.Deserialize(sr) as U3DStudent  ;

        
        //關閉流
        sr.Close();
    }

    /// <summary>
    /// 讀取xml文件
    /// </summary>
    private void ReadXml()
    {
        //實例化xml文件
        XmlDocument xmldocument = new XmlDocument();
        //加載xml文件
        xmldocument.Load(Application.dataPath + "/原/ZongJei.xml");
        //獲取根節點
        XmlElement root = xmldocument.DocumentElement;
        //獲取節點列表
        XmlNodeList listNodes = root.SelectNodes("name");
        for (int i = 0; i < listNodes.Count; i++)
        {
            //讀取內容
            print(listNodes[i].SelectSingleNode("age").InnerText);
            //讀取屬性
            XmlElement xe = listNodes[i] as XmlElement;
            print(xe.GetAttribute("ID"));
            //  獲取所有的子節點 不包括節點內容
            print(listNodes[i].ChildNodes);
            //獲取節點的第一個子節點值  
            print(listNodes[i].FirstChild.InnerText);
            //判斷該節點是否有子節點
            print(listNodes[i].HasChildNodes);
            //選擇匹配Xpath表達式的第一個XMLNode
            print(listNodes[i].SelectSingleNode("age").InnerText);
        }
        //關閉流
        xmldocument.Clone();
    }
}
/// <summary>
/// U3d學生類
/// </summary>
public class U3DStudent
{
  public  string name;
  public  string site;
  public  int age;
}

發佈了58 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章