Вставка данных в XML-документ - C#
Формулировка задачи:
Всем доброго времени суток. Подскажите пожалуйста, почему при добавлении дочернего элемента в несколько соседних элементов, он добавляется только в один из них.
Вот XML документ:
А вот код:
После чего XML-документ становится таким:
Почему он добавляет только в последний элемент, а не во все??
Листинг программы
- <?xml version="1.0" encoding="utf-8"?>
- <school>
- <class name="11a">
- <teacher name="Иванов" lesson="Физика" />
- <teacher name="Панюшкина" lesson="Русский" />
- </class>
- <class name="11б">
- <teacher name="Родительский" lesson="Физика" />
- <teacher name="Егорова" lesson="Русский" />
- </class>
- <class name="11в">
- <teacher name="Cеменова" lesson="Литература" />
- <teacher name="Хованский" lesson="Физика" />
- </class>
- </school>
Листинг программы
- class Program
- {
- static void Main(string[] args)
- {
- //обращаюсь к своему XML-документу
- XmlDocument document = new XmlDocument();
- document.Load(@"C:\Examples\Example.xml");
- XmlElement root = document.DocumentElement;
- //получаю коллекцию узлов class
- XmlNodeList school = root.SelectNodes("*");
- //создаю новый элемент teacher, чтобы его в дальнейшем добавить во все class
- XmlElement newTeacher = document.CreateElement("teacher");
- //создаю для него атрибуты
- XmlAttribute newName = document.CreateAttribute("name");
- XmlAttribute newLesson = document.CreateAttribute("lesson");
- //создаю значения для атрибутов
- XmlText name = document.CreateTextNode("Внуков");
- XmlText lesson = document.CreateTextNode("Физкультура");
- //присваиваю атрибуты элементу, текст атрибутам:
- newTeacher.Attributes.Append(newName);
- newTeacher.Attributes.Append(newLesson);
- newName.AppendChild(name);
- newLesson.AppendChild(lesson);
- // а теперь добавляю полученный элемент во все элементы class
- foreach (XmlNode n in school)
- { n.AppendChild(newTeacher); }
- //сохраняю
- document.Save(@"C:\Examples\Example.xml");
- Console.WriteLine("Учитель добавлен!");
- Console.ReadKey();
- }
- }
Листинг программы
- <?xml version="1.0" encoding="utf-8"?>
- <school>
- <class name="11a">
- <teacher name="Иванов" lesson="Физика" />
- <teacher name="Панюшкина" lesson="Русский" />
- </class>
- <class name="11б">
- <teacher name="Родительский" lesson="Физика" />
- <teacher name="Егорова" lesson="Русский" />
- </class>
- <class name="11в">
- <teacher name="Cеменова" lesson="Литература" />
- <teacher name="Хованский" lesson="Физика" />
- <teacher name="Внуков" lesson="Физкультура" />
- </class>
- </school>
Решение задачи: «Вставка данных в XML-документ»
textual
Листинг программы
- n.AppendChild(newTeacher);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д