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;
}
Xml和PlayerPrefs简单使用
最新推荐文章于 2023-08-02 16:16:48 发布