我最近开始学习C#,但使用XML.Linq来存储数据时遇到了问题。我希望这个问题是可以理解的,因为我还不熟悉所有正确的术语,并且英语不是我的母语。

我读过很多问题/用谷歌搜索,但是我自己也无法弄清楚。

我想更新现有的XDocument文件,如下所示:

<Data>
  <IDCounter>2</IDCounter>
  <Highscores>
     .......
  </Highscores>
  <savegames>
    <savegame>
       <IdNumber>1</IdNumber>
       <salutation>Mr</salutation>
       <prename>Prename1</prename>
       <surname>Surname1</surname>
       <maximumbalance>100</maximumbalance>
       <balance>100</balance>
    </savegame>
    <savegame>
       <IdNumber>2</IdNumber>
       <salutation>Mr</salutation>
       <prename>Prename2</prename>
       <surname>Surname2</surname>
       <maximumbalance>100</maximumbalance>
       <balance>100</balance>
     </savegame>
   </savegames>
</Data>

在特定元素中更改值的最简单方法是什么?

假设我要更改特定存档游戏余额

我想通过 IdNumber 访问保存游戏(这些数字是唯一的)

然后,我想更改 balance 的值(例如,更改为50),然后将这些更改保存到我的文档中。

最佳答案

随着using System.Xml.Linq;它成为

 var doc = XElement.Load(fileName);
 var saveGame = doc
      .Element("savegames")
      .Elements("savegame")
      .Where(e => e.Element("IdNumber").Value == "2")
      .Single();

 saveGame.Element("balance").Value = "50";

 doc.Save(fileName);

10-02 01:04
查看更多