如何加载 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 文件的属性的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Spring Boot 应用程序属性加载 Spring config xml $ 值

如何使用 XSLT 从 XML 中删除名称空间

NIFI如何将uuid更改为文件名

如何使用 Javascript 加载 XML 文件内容?

如何加载指定路径的Logback.xml

Eclipse中的普通Java项目如何部署到Tomcat中