MySQL Java JavaScript PHP Python HTML-CSS C-sharp C++ Go

Modificarea documentului în LINQ to XML

Să luăm fișierul XML people.xml din temele anterioare:

<?xml version="1.0" encoding="utf-8"?>
<people>
 <person name="Tom">
   <company>Microsoft</company>
   <age>37</age>
 </person>
 <person name="Bob">
   <company>Google</company>
   <age>41</age>
 </person>
</people>

Adăugarea de date

Pentru a adăuga date într-un document XML, la obiectul XElement se aplică metoda Add(), în care se transmite obiectul ce urmează a fi adăugat:

using System.Xml.Linq;

XDocument xdoc = XDocument.Load("people.xml");
XElement? root = xdoc.Element("people");

if(root != null)
{
   // adăugăm un nou element
   root.Add(new XElement("person",
               new XAttribute("name", "Sam"),
               new XElement("company", "JetBrains"),
               new XElement("age", 28)));

   xdoc.Save("people.xml");
}

// afișăm documentul XML în consolă
Console.WriteLine(xdoc);

În urma execuției, se va forma și salva pe disc un nou document:

<people>
 <person name="Tom">
   <company>Microsoft</company>
   <age>37</age>
 </person>
 <person name="Bob">
   <company>Google</company>
   <age>41</age>
 </person>
 <person name="Sam">
   <company>JetBrains</company>
   <age>28</age>
 </person>
</people>

Modificarea datelor

Pentru a modifica datele într-un document XML, trebuie să obținem elementul care trebuie schimbat și apoi putem edita valorile atributelor sau elementelor încorporate. Să modificăm elementul person, unde atributul name = "Tom":

using System.Xml.Linq;

XDocument xdoc = XDocument.Load("people.xml");

// obținem elementul person cu name = "Tom"
var tom = xdoc.Element("people")?
   .Elements("person")
   .FirstOrDefault(p => p.Attribute("name")?.Value == "Tom");

if(tom != null)
{
   // schimbăm atributul name
   var name = tom.Attribute("name");
   if (name != null) name.Value = "Tomas";

   // schimbăm elementul încorporat age
   var age = tom.Element("age");
   if (age != null) age.Value = "22";

   xdoc.Save("people.xml");
}

// afișăm documentul XML în consolă
Console.WriteLine(xdoc);

În urma execuției, se va forma și salva pe disc un nou document:

<people>
 <person name="Tomas">
   <company>Microsoft</company>
   <age>22</age>
 </person>
 <person name="Bob">
   <company>Google</company>
   <age>41</age>
 </person>
 <person name="Sam">
   <company>JetBrains</company>
   <age>28</age>
 </person>
</people>

Ștergerea datelor

Pentru a șterge date dintr-un document XML, la obiectul XElement care urmează să fie șters se apelează metoda Remove(). De exemplu, să ștergem elementul person, unde atributul name = "Bob":

using System.Xml.Linq;

XDocument xdoc = XDocument.Load("people.xml");
XElement? root = xdoc.Element("people");

if (root != null)
{
   // obținem elementul person cu name = "Bob"
   var bob = root.Elements("person")
       .FirstOrDefault(p => p.Attribute("name")?.Value == "Bob");
   // și îl ștergem
   if (bob != null)
   {
       bob.Remove();
       xdoc.Save("people.xml");
   }
}

// afișăm documentul XML în consolă
Console.WriteLine(xdoc);

În urma execuției, se va forma și salva pe disc un nou document:

<people>
 <person name="Tomas">
   <company>Microsoft</company>
   <age>22</age>
 </person>
 <person name="Sam">
   <company>JetBrains</company>
   <age>28</age>
 </person>
</people>

De asemenea, dacă trebuie să ștergeți un atribut, la obiectul XAttribute se aplică metoda Remove().