源代码:
using System;
using System.Threading;
using System.Xml;
using System.Collections.Generic;
public static void Main(string[] args){
XmlDocument xd=new XmlDocument();
xd.Load("test.xml");//加载xml文档
XmlNode rootNode= xd.FirstChild;//得到xml文档的根节点
XmlNodeList childNodes= rootNode.ChildNodes;//得到根节点下面的所有子节点
List<Character> playerList=new List<Character>();//创建character类型的列表
foreach(XmlNode p in childNodes){//遍历各个角色
Character player=new Character();//创建一个角色,用来存储查询到的信息
XmlNodeList contentList= p.ChildNodes;//得到该角色结点下的所有子节点
foreach(XmlNode content in contentList){//遍历子节点
if(content.Name=="name"){
player.Name=content.InnerText.ToString();
}
if(content.Name=="profession"){
player.Profession=content.InnerText.ToString();
}
if(content.Name=="skill"){
player.Skill=content.InnerText.ToString();
}
if(content.Name=="damage"){
player.Damage=Int16.Parse( content.InnerText.ToString());
}
}
playerList.Add(player);//将创建的角色添加到角色列表
}
foreach(Character p in playerList)//遍历角色信息
Console.WriteLine(p.ToString());
Console.ReadKey();
}
class Character{
public Character(){}
public string Name{get;set;}
public string Profession{get;set;}
public string Skill{get;set;}
public int Damage{get;set;}
public override string ToString()
{
return string.Format("[Character Name={0}, Profession={1}, Skill={2}, Damage={3}]", Name, Profession, Skill, Damage);
}
}
代码只截取了其中一部分,没用的我就没粘上来
XML文本内容:
<character>
<player><name>武则天</name><profession>法师</profession><skill>生杀予夺</skill><damage>1100</damage> </player>
<player><name>吕布</name><profession>战士</profession><skill>神魔降世</skill><damage>900</damage></player>
<player><name>孙悟空</name><profession>刺客</profession><skill>如意金箍</skill><damage>770</damage></player>
<player><name>妲己</name><profession>法师</profession><skill>女王崇拜</skill><damage>485</damage></player>
</character>
运行结果: