我正在嘗試將多個條目保存到現有的 xml 文檔中。但我沒有得到想要的結果。我有以下代碼:public static void recordScore(ScoreModel scoreModel) { var path = "../../Media/Leaderboard/Leaderboard.xml"; var saveModel = new LeaderboardModel(); Stream fs = new FileStream(path, FileMode.Open); XmlReader reader = new XmlTextReader(fs); XmlSerializer serializer = new XmlSerializer(typeof(LeaderboardModel)); if (serializer.CanDeserialize(reader)) { LeaderboardModel o = (LeaderboardModel) serializer.Deserialize(reader); saveModel.ScoreModels.AddRange(o.ScoreModels); } fs.Close(); saveModel.ScoreModels.Add(scoreModel); System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(typeof(LeaderboardModel)); System.IO.FileStream file = System.IO.File.Open(path, System.IO.FileMode.Append); writer.Serialize(file, saveModel); file.Close(); }我在xml文件中的輸出如下:<?xml version="1.0"?><LeaderboardModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <ScoreModels> <ScoreModel> <Name>Test</Name> <GameSpeed>Normal</GameSpeed> <Score>11</Score> </ScoreModel> </ScoreModels></LeaderboardModel><?xml version="1.0"?><LeaderboardModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <ScoreModels> <ScoreModel> <Name>Test</Name> <GameSpeed>Normal</GameSpeed> <Score>11</Score> </ScoreModel> </ScoreModels>如您所見,它每次都輸出 LeaderboardModel 和 ScoreModels。它應該只寫一次,然后在該根下添加新的 ScoreModel。
- 1 回答
- 0 關注
- 142 瀏覽
添加回答
舉報
0/150
提交
取消