要存储的信息
public class Item
{
public int id;
public int num;
}
public class PlayerInfo
{
public string name;
public int atk;
public float moveSpeed;
public Item weapon;
public List<int> listInt;
public List<Item> itemList;
public Dictionary<int, Item> itemDic;
}
套路五步走(类似于在windows创建xml文件)
1、声明路径
//声明存放路径
string path = Application.persistentDataPath + xmlName;
2、创建文本对象
//创建文本对象
XmlDocument xml = new XmlDocument();
3、添加版本编码信息
//添加版本信息
XmlDeclaration xDec = xml.CreateXmlDeclaration("1.0", "UTF-8", "");
//创建完成后添加进入文本对象中
xml.AppendChild(xDec);
4、用xml中的AppendChild方法向内添加节点
重要方法AppendChild!重要方法AppendChild!重要方法AppendChild!
写法套路:例如保存weapon,先创建一个XmlElement对象,用xml.CreateElement("节点名")进行初始化。回车键空一行,将weapon先添加到PlayerInfo根节点中。再在两行代码中间书写里面存放的item。item写完也要记得存放到weapon当中。
赋值用InnerText = "string"
如果要添加属性则用SetAttribute("属性名","值");
//创建根节点
XmlElement playerInfo = xml.CreateElement("PlayInfo");
xml.AppendChild(playerInfo);
//保存name节点
XmlElement name = xml.CreateElement("name");
name.InnerText = this.name;
playerInfo.AppendChild(name);
//保存atk节点
XmlElement atk = xml.CreateElement("atk");
atk.InnerText = this.atk.ToString();
playerInfo.AppendChild(atk);
//保存moveSpeed节点
XmlElement moveSpeed = xml.CreateElement("moveSpeed");
moveSpeed.InnerText = this.atk.ToString();
playerInfo.AppendChild(moveSpeed);
//weapon
XmlElement weapon = xml.CreateElement("weapon");
XmlElement itemWeapon = xml.CreateElement("Item");
itemWeapon.SetAttribute("id", 3.ToString());
itemWeapon.SetAttribute("num", 1.ToString());
weapon.AppendChild(itemWeapon);
playerInfo.AppendChild(weapon);
//listInt
XmlElement listInt = xml.CreateElement("listInt");
for (int i = 1; i <= this.listInt.Count; i++)
{
XmlElement temInt = xml.CreateElement("int");
temInt.InnerText = i.ToString();
listInt.AppendChild(temInt);
}
playerInfo.AppendChild(listInt);
//itemList
XmlElement itemList = xml.CreateElement("itemList");
for (int i = 1; i <= this.itemList.Count; i++)
{
XmlElement temItem = xml.CreateElement("Item");
temItem.SetAttribute("id", i.ToString());
temItem.SetAttribute("num", 10.ToString());
itemList.AppendChild(temItem);
}
playerInfo.AppendChild(itemList);
//itemDic
XmlElement itemDic = xml.CreateElement("itemDic");
for (int i = 1; i <= this.itemDic.Count; i++)
{
XmlElement temInt = xml.CreateElement("Int");
temInt.InnerText = i.ToString();
XmlElement temItem = xml.CreateElement("Item");
temItem.SetAttribute("id", i.ToString());
temItem.SetAttribute("num", 1.ToString());
itemDic.AppendChild(temInt);
itemDic.AppendChild(temItem);
}
playerInfo.AppendChild(itemDic);
5、最后记得保存
//保存
xml.Save(path);