Вставка данных в 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д