Добавление и удаление узла в XML - C#

Узнай цену своей работы

Формулировка задачи:

<?xml version="1.0" encoding="utf-8"?>
<PassSaver>
  <profile name="1" pass="2">
    <Service name="123"></Service>
    <Service name="456"></Service>
  </profile>
  <profile name="5" pass="6">
    <Service name="123"></Service>
    <Service name="456"></Service>
  </profile>
</PassSaver>
Здравствуйте, подскажите как сделать, чтобы добавить новый узел в
 <profile name="1" pass="2">
А именно сделать так:
  <profile name="1" pass="2">
    <Service name="123">
           <login>NAME</login>
    </Service>
    <Service name="456"></Service>
  </profile>
Попробовал сделать так
XDocument doc = XDocument.Load("1.xml");
IEnumerable<XElement> profiles = doc.Descendants("profile").Where((el => (string)el.Attribute("name") == "1"));
            foreach (XElement el in profiles)
            {
                IEnumerable<XElement> elements1 = doc.Descendants("Service").Where((el2 => ((string)el2.Attribute("name") == "123")));
                foreach (XElement el2 in elements1)
                {
                    XElement profile = new XElement("login","NAME");
                    el2.Add(profile);
                }
            }
Но он добавляет в 2 узла и получается так:
<?xml version="1.0" encoding="utf-8"?>
<PassSaver>
  <profile name="1" pass="2">
    <Service name="123">
              <login>NAME</login>
    </Service>
    <Service name="456"></Service>
  </profile>
  <profile name="5" pass="6">
    <Service name="123">
              <login>NAME</login>
    </Service>
    <Service name="456"></Service>
  </profile>
</PassSaver>

Решение задачи: «Добавление и удаление узла в XML»

textual
Листинг программы
var entries = from service in doc.Root.XPathSelectElements("/profile/Service")
                where service.HasElements
                from login in service.Elements("login")
                select new { Name = (string)service.Attribute("name"), Login = login.Value };
 
dataGrid.DataSource = entries.ToArray();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5