一、读取
读取的xml文件如下:
读取数据结构如下:
class Mission
{
public int id; //任务ID
public int passtype; //通关方式(距离|时间|打死BOSS)
public int value; //对应通关方式,距离,时间。。。
public int exp; //每个怪物或者经验球的经验值
public int monsterHP; //怪物血量
public int monsterattack; //怪物伤害值
public int strength; //消耗的体力值
public int MaxGold; //
public List condlist= new List(); //开启条件
public Dictionaryobspart = new Dictionary(); //阻碍片段链表
}
读取代码如下:
void LoadMissionXml()
{
TextAsset MissionXml = (TextAsset)Resources.Load("Mission");
XmlDocument XmlDoc= new XmlDocument();
XmlDoc.LoadXml(MissionXml.text.ToString().Trim()); //Trim去掉字符串中首尾空格
XmlNode XN =XmlDoc.SelectSingleNode("Mission");
XmlNodeList XNL =XN.ChildNodes;
for (int i = 0; i < XNL.Count; ++i)
{
Mission mMission = new Mission();
XmlElement XE = (XmlElement)XNL[i];
mMission.id = int.Parse(XE.GetAttribute("id"));
mMission.passtype = int.Parse(XE.GetAttribute("passtype"));
mMission.value = int.Parse(XE.GetAttribute("value"));
mMission.exp = int.Parse(XE.GetAttribute("exp"));
mMission.monsterHP = int.Parse(XE.GetAttribute("hp"));
mMission.monsterattack = int.Parse(XE.GetAttribute("attack"));
mMission.strength = int.Parse(XE.GetAttribute("strength"));
mMission.MaxGold = int.Parse(XE.GetAttribute("maxgold"));
for(int j = 0; j
二、写xml文件
void CreateXML()
{
string path =Application.dataPath + "/StreamingAssets/" + "/roadData.xml";
Debug.Log(path);
if (!File.Exists(path))
{
XmlDocument xml = new XmlDocument();
//创建根节点
XmlElement root =xml.CreateElement("Road");
//创建子节点
XmlElement element =xml.CreateElement("road");
//添加并设置节点的属性
element.SetAttribute("id","1");
XmlElement elementChild1 =xml.CreateElement("part");
elementChild1.SetAttribute("name","a");
//设置节点内的内容
elementChild1.InnerText = "abc";
XmlElementelementChild2 = xml.CreateElement("part");
elementChild2.SetAttribute("map","abc");
elementChild2.InnerText = "def";
//把节点一层一层的添加至xml中,注意他们之间的先后顺序,决定了父子级关系
element.AppendChild(elementChild1);
element.AppendChild(elementChild2);
root.AppendChild(element);
xml.AppendChild(root);
//最后保存文件
xml.Save(path);
}
AssetDatabase.Refresh(); //刷新
}
完成之后就会生成一个xml文件,内容如下:
abc
def
三、修改xml文件内容