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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值