38

私は最近 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> 

特定の要素の値を変更する最も簡単な方法は何ですか?

特定のsavegameのバランスを変更したいとしましょう。

IdNumberでセーブゲームにアクセスしたい(これらの番号は一意です)

次に、残高の値を(たとえば 50 に) 変更し、これらの変更をドキュメントに保存します。

4

4 に答える 4

4
   UpdateGameAttr(id ,  bal);

   private void UpdateGameAttr(int id, int bal)
   {
       XDocument gmaes = XDocument.Load(@"D:\xxx\xxx\Game.xml");            

       XElement upd = (from games in games.Descendants("savegame")
                      where games.Element("IdNumber").Value == id.ToString()
                      select games).Single();
       upd.Element("balance").Value = bal.ToString();
       gmaes.Save(@"D:\xxxx\xxx\Game.xml");

   }
于 2013-08-29T11:11:30.730 に答える