void Start()
{
//用来存储XML中所有的对象,一个技能的所有节点读取完毕以后,存储到这里
List<Skill> skills = new List<Skill>();
///XmlDocument专门用来解析XML文档
XmlDocument xmlDocument = new XmlDocument();
//选择要加载的XML文档的名字
//参数为XML文档的地址
xmlDocument.LoadXml(@"E:\个人文件\Test\Assets\技能信息表.xml");
//得到根节点 FirstChild得到第一个节点
XmlNode xmlNode = xmlDocument.FirstChild;
//得到根节点下所有的子节点 它存储了这里的三个技能信息
XmlNodeList skillNodeList = xmlNode.ChildNodes;
///遍历所有的子节点,遍历三个技能信息
foreach (XmlNode item in skillNodeList)
{
Skill skill = new Skill();
//获取每个skill下的子节点 这里存储了每个技能的信息 id name等
XmlNodeList filedNodeList = item.ChildNodes;
///遍历skill节点的所有子节点 获得ID 名字等
foreach (XmlNode skillNode in filedNodeList)
{
if (skillNode.Name == "id")
{
//获取节点内部的文本 并赋值给skill这个实例的ID变量 InnerText可以获得两个<> <>之间的值
skill.ID = int.Parse(skillNode.InnerText);
}
else if (skillNode.Name == "name")
{
skill.Name = skillNode.InnerText;
//Attributes[0].value表示获取第一个属性的值
skill.AtackType = skillNode.Attributes[0].Value;
}
else
{
skill.Damage = int.Parse(skillNode.InnerText);
}
}
skills.Add(skill);
}
foreach (var item in skills)
{
Debug.Log(item);
}
}
class Skill
{
public int ID { get; set; }
public string Name { get; set; }
public string AtackType { get; set; }
public int Damage { get; set; }
public override string ToString()
{
string s = "";
s ="id:"+ ID + " " +"名字:"+ Name + "类型"+AtackType+" " +"伤害值:"+ Damage;
return s;
}
}
<Skill>
<skill>
<id>2</id>
<name atackType="远程">乾坤大挪移</name>
<damage>100</damage>>
</skill>
<skill>
<id>3</id>
<name atackType="近战">九阴白骨爪</name>
<damage>300</damage>>
</skill>
<skill>
<id>3</id>
<name atackType="奶妈">巴啦啦能量</name>
<damage>10</damage>>
</skill>
</Skill>