none
XML - Ajouter ou modifier un élément RRS feed

  • Question

  • Bonjour,

    Voici un fichier XML que j'aimerais modifier (ajouter ou modifier un élément):

    <?xml version="1.0" encoding="utf-8"?>
    <UsersSettings>
    	<Users>
    	  <User UserLogin="USER0142">
    		<CheckLeftFooters>Y</CheckLeftFooters>
    	  </User>
    	  <User UserLogin="USER0143">
    		<CheckLeftFooters>Y</CheckLeftFooters>
    	  </User>
    	  <User UserLogin="USER0144">
    		<CheckLeftFooters>Y</CheckLeftFooters>
    	  </User>
    	  <User UserLogin="USER0145">
    		<CheckLeftFooters>Y</CheckLeftFooters>
    	  </User>
    	</Users>
    </UsersSettings>


    Voici ce que j'ai écrit (c'est un extrait du code) mais à chaque fois il rajoute la partie "Users" à la fin du fichier existant au lieu d'écrire dans la section "UsersSettings".

                                using (var fileStream = new FileStream(settingsFileUsers, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
                                {
                                    XElement xml = XElement.Load(fileStream).Element("Users");
    
                                    var user = (from u in xml.Elements()
                                                where (string)u.Attribute("UserLogin") == Utilities.UserLogin
                                                select u).SingleOrDefault();
    
                                    if (user == null)
                                    {
                                        xml.Add(new XElement("User",
                                                new XAttribute("UserLogin", Utilities.UserLogin),
                                                new XElement(CheckLeftFooters, userSettings.CheckLeftFooters ? "Y" : "N")));
                                        xml.Save(fileStream);
                                    }
                                    else
                                    {
                                        user.SetElementValue(CheckLeftFooters, userSettings.CheckLeftFooters ? "Y" : "N");
                                        xml.Save(fileStream);
                                    }
                                }


    Merci.


    Patrick


    • Modifié P. Fredin jeudi 6 août 2015 19:40
    jeudi 6 août 2015 19:40

Réponses

Toutes les réponses