Удаление элемента из XML по дочернему элементу ID - C#

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

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

Здравствуйте,прошу помочь с проблемой. Как сделать удаление тега и его дочерних тегов , через дочерний тег ID? Например:
Листинг программы
  1. <1>
  2. <2>
  3. <3></3>
  4. <3></3>
  5. <3></3>
  6. <ID>1</ID>
  7. </2>
  8. <2>
  9. <3></3>
  10. <3></3>
  11. <3></3>
  12. <ID>2</ID>
  13. </2>
  14. </1>
Как через C# удалить тег 2 и его дочерние теги , который имеет тег ID со значением 2?

Решение задачи: «Удаление элемента из XML по дочернему элементу ID»

textual
Листинг программы
  1.     [XmlRoot("E1")]
  2.     public class Root
  3.     {
  4.         [XmlElement("E2")]
  5.         public List<Child> Childs { get; set; }
  6.  
  7.         [XmlIgnore]
  8.         public string File { get; set; }
  9.  
  10.         public static Root Load(string path)
  11.         {
  12.             XmlSerializer deser = new XmlSerializer(typeof(Root));
  13.             using (var fs = new FileStream(path, FileMode.Open))
  14.             {
  15.                 Root cat = (Root)deser.Deserialize(fs);
  16.                 cat.File = path;
  17.                 return cat;
  18.             }
  19.         }
  20.  
  21.         public static void Save(Root db)
  22.         {
  23.             XmlSerializer ser = new XmlSerializer(typeof(Root));
  24.             XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
  25.             namespaces.Add(string.Empty, string.Empty);
  26.             using (var fs = new FileStream(db.File, FileMode.Create))
  27.                 ser.Serialize(fs, db, namespaces);
  28.         }
  29.     }
  30.  
  31.     public class Child
  32.     {
  33.         [XmlElement("E3")]
  34.         public string[] Arr { get; set; }
  35.         [XmlElement("ID")]
  36.         public string Id { get; set; }
  37.     }
  38.  
  39.  
  40.             Root r = new Root();
  41.             r.Childs = new List<Child>()
  42.             {
  43.                 new Child() { Id = "1", Arr = new string[3] { "", "", "" } },
  44.                 new Child() { Id = "2", Arr = new string[3] { "", "", "" } },
  45.             };
  46.  
  47.             r.File = "test.xml";
  48.  
  49.             Root.Save(r);
  50.  
  51.             r.Childs.RemoveAll(c => c.Id == "2");
  52.  
  53.             r.File = "test2.xml";
  54.  
  55.             Root.Save(r);

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


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

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

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

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

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

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