Удаление элемента из XML по дочернему элементу ID - C#
Формулировка задачи:
Здравствуйте,прошу помочь с проблемой.
Как сделать удаление тега и его дочерних тегов , через дочерний тег ID?
Например:
Как через C# удалить тег 2 и его дочерние теги , который имеет тег ID со значением 2?
Листинг программы
- <1>
- <2>
- <3></3>
- <3></3>
- <3></3>
- <ID>1</ID>
- </2>
- <2>
- <3></3>
- <3></3>
- <3></3>
- <ID>2</ID>
- </2>
- </1>
Решение задачи: «Удаление элемента из 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д