Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se C a C++. Zároveň využij akce až 80 % zdarma při nákupu e-learningu - více informací.
c week

Diskuze: C# zapisování do XML bez přepsání celého souboru

Aktivity
Avatar
lukas.sei
Člen
Avatar
lukas.sei:19.3.2016 13:43

Čaute,
Dá se v C# zapisovat do XML souboru bez jeho celého přepsání ?
Mám soubor který vypadá asi takhle:

<?xml version="1.0" encoding="utf-8"?>
<skupiny>
  <skupina Jmeno="admin">
    <Heslo>*****</Heslo>
  </skupina>
  <skupina Jmeno="normal">
    <Heslo>*****</Heslo>
  </skupina>
</skupiny>

A já bych potřeboval do toho souboru pouze připsat další skupinu a nepřepsat tím celý soubor.
Ukládání mám zatím řešeno podle tohohle návodu:
http://www.itnetwork.cz/…-zapis-saxem

Za každou radu budu velmi rád.

 
Odpovědět
19.3.2016 13:43
Avatar
ORRNY99
Člen
Avatar
ORRNY99:19.3.2016 14:23

Zkus tohle:

XDocument doc = XDocument.Load("soubor.xml");
            XElement xml = doc.Element("skupiny");
            xml.Add(new XElement("skupina", new XAttribute("Jmeno", "User"),
                       new XElement("Heslo", "******")));
            doc.Save("soubor.xml");
Editováno 19.3.2016 14:24
 
Nahoru Odpovědět
19.3.2016 14:23
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na lukas.sei
Petr Čech:19.3.2016 22:26

Obávám se, že to nejde. Kdyby tam nebyl ten poslední tag, má StreamWriter možnost na appendování: https://msdn.microsoft.com/…6b035cb.aspx

Nahoru Odpovědět
19.3.2016 22:26
the cake is a lie
Avatar
Petr Čech
Redaktor
Avatar
Petr Čech:19.3.2016 22:51

A parsuješ si ten soubor potom sám, nebo ho někam exportuješ? Pokud by něj sahala jen tvoje appka, mohl bys mít něco jako:

<?xml version="1.0" encoding="utf-8"?>
<skupiny>
  <skupina Jmeno="admin">
    <Heslo>*****</Heslo>
  </skupina>

k tomu bys mohl vždy appendovat nové heslo, a když bys to potřeboval přečíst, načetl bys obsah toho souboru a přidal k tomu interně

</skupiny>

další hesla bys přidával takto:

using (StreamWriter sw=new StreamWriter("cesta_k_souboru",true))
                {
                    sw.Write("<skupina Jmeno=\"admin\"><Heslo>*****</Heslo></ skupina >");
                }
Nahoru Odpovědět
19.3.2016 22:51
the cake is a lie
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.