如何加载 XML 文件的属性
Posted
技术标签:
【中文标题】如何加载 XML 文件的属性【英文标题】:How to load a property of an XML-file 【发布时间】:2020-03-09 03:57:23 【问题描述】:我想加载一个 XML 文件的highscore
并在一个标签中花费第一名。我如何设法读取第一个条目并花费其价值?
public class Highscore_obj
public string Name get; set;
public int Score get; set;
class Highscore
public Highscore_obj[] Score_array = new Highscore_obj[4];
public void LoadXmL(string path)
XmlDocument XML = new XmlDocument();
using (Stream s = File.OpenRead(path))
XML.Load(s);
Score_array[0].Name = "Alex";
Score_array[0].Score = 1000;
Score_array[1].Name = "Chris";
Score_array[1].Score = 940;
Score_array[2].Name = "Stefan";
Score_array[2].Score = 700;
XmlNodeList Highscores = XML.ChildNodes;
当我开始游戏时,Alex 的Highscore
必须在标签中可见。
【问题讨论】:
【参考方案1】:我宁愿建议使用列表而不是数组。然后您可以使用 Linq 查询您的列表并按分数降序排序。我也宁愿使用序列化和反序列化来加载和存储您的 List 到 XML 和从 XML 存储。
下面的代码说明了这一点,应该让你走上正轨。
internal List<Highscore> Highscores get; set;
public void LoadXmL(string path)
List<Highscore> highscores = null;
XmlSerializer ser = new XmlSerializer(typeof(List<Highscore>));
using (XmlReader reader = XmlReader.Create(path))
highscores = (List<Highscore>)ser.Deserialize(reader);
if (highscores == null)
highscores = new List<Highscore>
new Highscore Name = "Alex", Score = 1000 ,
new Highscore Name = "Chris", Score = 940 ,
new Highscore Name = "Stefan", Score = 700 ,
;
public class Highscore
public string Name get; set;
public int Score get; set;
public Highscore GetHighest()
return Highscores.OrderByDescending(o => o.Score).First();
【讨论】:
以上是关于如何加载 XML 文件的属性的主要内容,如果未能解决你的问题,请参考以下文章