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

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

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

Здравствуйте,прошу помочь с проблемой. Как сделать удаление тега и его дочерних тегов , через дочерний тег ID? Например:
<1>
    <2>
        <3></3>
        <3></3>
        <3></3>
        <ID>1</ID>
    </2>
     <2>
        <3></3>
        <3></3>
        <3></3>
        <ID>2</ID>
    </2>
</1>
Как через C# удалить тег 2 и его дочерние теги , который имеет тег ID со значением 2?

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

textual
Листинг программы
    [XmlRoot("E1")]
    public class Root
    {
        [XmlElement("E2")]
        public List<Child> Childs { get; set; }
 
        [XmlIgnore]
        public string File { get; set; }
 
        public static Root Load(string path)
        {
            XmlSerializer deser = new XmlSerializer(typeof(Root));
            using (var fs = new FileStream(path, FileMode.Open))
            {
                Root cat = (Root)deser.Deserialize(fs);
                cat.File = path;
                return cat;
            }
        }
 
        public static void Save(Root db)
        {
            XmlSerializer ser = new XmlSerializer(typeof(Root));
            XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
            namespaces.Add(string.Empty, string.Empty);
            using (var fs = new FileStream(db.File, FileMode.Create))
                ser.Serialize(fs, db, namespaces);
        }
    }
 
    public class Child
    {
        [XmlElement("E3")]
        public string[] Arr { get; set; }
        [XmlElement("ID")]
        public string Id { get; set; }
    }
 
 
            Root r = new Root();
            r.Childs = new List<Child>()
            {
                new Child() { Id = "1", Arr = new string[3] { "", "", "" } },
                new Child() { Id = "2", Arr = new string[3] { "", "", "" } },
            };
 
            r.File = "test.xml";
 
            Root.Save(r);
 
            r.Childs.RemoveAll(c => c.Id == "2");
 
            r.File = "test2.xml";
 
            Root.Save(r);

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


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

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

7   голосов , оценка 4.286 из 5
Похожие ответы