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

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

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

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

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

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

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут